изменил метод по добавлению трека в избранное

This commit is contained in:
Mike0001-droid 2024-06-10 12:27:25 +05:00
parent cd188d06a6
commit 13a045465c
1 changed files with 11 additions and 16 deletions

View File

@ -15,6 +15,7 @@ class SongViewSet(ViewSet):
permission_classes_by_action = {
'list': [IsAuthenticated],
'retrieve': [IsAuthenticated],
'create_song': [IsAuthenticated]
}
def list(self, request):
user_pk = request.user.pk
@ -29,23 +30,17 @@ class SongViewSet(ViewSet):
serializer = FavoriteSongSerializer(queryset[0])
return Response(serializer.data)
@action(detail=False, methods=['post'], schema=SongSchema())
def create_song(self, request):
song = Song.objects.filter(azura_id = request.data['azura_id'])
data = None
#Если трек есть в базе
if song:
data = {
"song": song[0].id,
"user": request.user.pk
}
serializer_1 = FavoriteSongSerializer(data=data)
if serializer_1.is_valid():
serializer_1.save()
resp = serializer_1.data
resp.update(is_favorite=True)
return Response(resp, status=status.HTTP_201_CREATED)
else:
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
#Если трека нету в базе
else:
file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}"
api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235"
@ -57,19 +52,19 @@ class SongViewSet(ViewSet):
file_play = f"http://82.97.242.49:10084/api/station/it-radio/file/{response.json()['unique_id']}/play"
data.update(unique_id = file_play)
serializer = SongSerializer(data=data)
if serializer.is_valid():
serializer.save()
data = {
"song": song[0].id,
"user": request.user.pk
}
serializer_1 = FavoriteSongSerializer(data=data)
if serializer_1.is_valid():
serializer_1.save()
return Response(serializer_1.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
serializer = FavoriteSongSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
def delete_song(self, request):