diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index a1cad1e..acf8f1b 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -23,26 +23,21 @@ class SongViewSet(GenericViewSet): serializer = SongSerializer(songs, many=True) return Response(serializer.data) - def retrieve(self, request, pk=None): + @action( + detail=False, + methods=['get'], + url_path='check_is_favorite/(?P[a-zA-Z0-9_]+)', + url_name='check_is_favorite', + ) + def check_is_favorite(self, request, azura_id): try: - song_obj = Song.objects.get(azura_id=pk) + song_obj = Song.objects.get(azura_id=azura_id) favorite_songs = FavoriteSong.objects.get(user=request.user, song=song_obj) except ObjectDoesNotExist: return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) serializer = FavoriteSongSerializer(favorite_songs) return Response(serializer.data) - - - @action(detail=False, methods=['GET'], schema=DeleteSongSchema()) - def check_is_favorite(self, request): - try: - song_obj = Song.objects.get(azura_id=request.data.get('song_id')) - favorite_songs = FavoriteSong.objects.get(user=request.user, song=song_obj) - except ObjectDoesNotExist: - return Response({"error": 'Объекта не существует'}, status=status.HTTP_404_NOT_FOUND) - serializer = FavoriteSongSerializer(favorite_songs) - return Response(serializer.data) - + @action(detail=False, methods=['post'], schema=SongSchema()) def add_favorite(self, request):