diff --git a/server/proj/audio/schemas.py b/server/proj/audio/schemas.py index bf843fa..2c840a5 100644 --- a/server/proj/audio/schemas.py +++ b/server/proj/audio/schemas.py @@ -42,4 +42,14 @@ class SongSchema(AutoSchema): schema=coreschema.String(description='Изображение трека') ), ] - \ No newline at end of file + +class DeleteSongSchema(AutoSchema): + def get_serializer_fields(self, path, method): + return [ + coreapi.Field( + name='song_id', + location='form', + required=False, + schema=coreschema.Integer(description='ID трека') + ), + ] \ No newline at end of file diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 5ac821d..e19cdf6 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -5,8 +5,8 @@ from rest_framework.decorators import action from rest_framework import status from django.shortcuts import get_object_or_404 -from .schemas import SongSchema -from .models import Song +from .schemas import SongSchema, DeleteSongSchema +from .models import Song, FavoriteSong from .serializers import SongSerializer, FavoriteSongSerializer class SongViewSet(ViewSet): @@ -30,4 +30,13 @@ class SongViewSet(ViewSet): return Response(serializer_1.data, status=status.HTTP_201_CREATED) else: return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST) + + @action(detail=False, methods=['post'], schema=DeleteSongSchema()) + def delete_song(self, request): + song_id = request.data['track_id'] + user_id = request.user.pk + item = FavoriteSong.objects.filter(song=song_id, user=user_id) + item.delete() + return Response(status=status.HTTP_202_ACCEPTED) + \ No newline at end of file