изменил метод по добавлению трека в избранное
This commit is contained in:
parent
cd188d06a6
commit
13a045465c
|
|
@ -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)
|
||||
|
||||
serializer = FavoriteSongSerializer(data=data)
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
else:
|
||||
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
@action(detail=False, methods=['post'], schema=DeleteSongSchema())
|
||||
def delete_song(self, request):
|
||||
|
|
|
|||
Loading…
Reference in New Issue