diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 9a3bc71..aa6b3a5 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -16,6 +16,18 @@ class SongViewSet(ViewSet): serializer = SongSerializer(queryset, many=True) return Response(serializer.data) + def retrieve(self, request, pk=None): + user_pk = request.user.pk + song_obj = get_object_or_404(Song, azura_id=pk).pk + queryset = FavoriteSong.objects.filter(user=user_pk, song=song_obj).exists() + if queryset: + serializer = FavoriteSongSerializer(queryset=queryset) + resp = serializer.data + resp.update(is_favorite=True) + return Response(serializer.data, status=status.HTTP_201_CREATED) + else: + return Response('Трека нет... Стёпа извини...', status=status.HTTP_400_BAD_REQUEST) + @action(detail=False, methods=['post'], schema=SongSchema()) def create_song(self, request): song = Song.objects.filter(azura_id = request.data['azura_id']) @@ -23,7 +35,6 @@ class SongViewSet(ViewSet): data = { "song": song[0].id, "user": request.user.pk - } serializer_1 = FavoriteSongSerializer(data=data) if serializer_1.is_valid(): @@ -51,7 +62,6 @@ class SongViewSet(ViewSet): "song": song[0].id, "user": request.user.pk } - serializer_1 = FavoriteSongSerializer(data=data) if serializer_1.is_valid(): serializer_1.save()