From 13a045465c66009bfb28147f114211c03dd55dca Mon Sep 17 00:00:00 2001 From: Mike0001-droid Date: Mon, 10 Jun 2024 12:27:25 +0500 Subject: [PATCH] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D0=BF=D0=BE=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8E=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=B0=20=D0=B2=20=D0=B8=D0=B7=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/proj/audio/views.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/server/proj/audio/views.py b/server/proj/audio/views.py index 7e1efa1..a9c23bb 100644 --- a/server/proj/audio/views.py +++ b/server/proj/audio/views.py @@ -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) - else: - return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST) + + serializer = FavoriteSongSerializer(data=data) + if serializer.is_valid(): + serializer.save() + return Response(serializer.data, status=status.HTTP_201_CREATED) + else: + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) @action(detail=False, methods=['post'], schema=DeleteSongSchema()) def delete_song(self, request):