From 7fb16f3989f886f0cc3a109dd5ccc7e1cee89e20 Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Thu, 6 Jun 2024 19:06:34 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=B4=D0=BB=D1=8F=20=D1=83?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=D0=B7=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=B1=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/schemas.py | 12 +++++++++++- server/proj/audio/views.py | 13 +++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) 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