изменил метод по добавлению трека в избранное

This commit is contained in:
Mike0001-droid 2024-06-10 12:27:25 +05:00
parent cd188d06a6
commit 13a045465c
1 changed files with 11 additions and 16 deletions

View File

@ -15,6 +15,7 @@ class SongViewSet(ViewSet):
permission_classes_by_action = { permission_classes_by_action = {
'list': [IsAuthenticated], 'list': [IsAuthenticated],
'retrieve': [IsAuthenticated], 'retrieve': [IsAuthenticated],
'create_song': [IsAuthenticated]
} }
def list(self, request): def list(self, request):
user_pk = request.user.pk user_pk = request.user.pk
@ -29,23 +30,17 @@ class SongViewSet(ViewSet):
serializer = FavoriteSongSerializer(queryset[0]) serializer = FavoriteSongSerializer(queryset[0])
return Response(serializer.data) return Response(serializer.data)
@action(detail=False, methods=['post'], schema=SongSchema()) @action(detail=False, methods=['post'], schema=SongSchema())
def create_song(self, request): def create_song(self, request):
song = Song.objects.filter(azura_id = request.data['azura_id']) song = Song.objects.filter(azura_id = request.data['azura_id'])
data = None
#Если трек есть в базе
if song: if song:
data = { data = {
"song": song[0].id, "song": song[0].id,
"user": request.user.pk "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: else:
file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}" file_url = f"http://82.97.242.49:10084/api/station/it-radio/file/{request.data['azura_id']}"
api_key = "49226d3488aac3f5:18d88659c6c1c5e131a0ce0a94d55235" 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" 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) data.update(unique_id = file_play)
serializer = SongSerializer(data=data) serializer = SongSerializer(data=data)
if serializer.is_valid(): if serializer.is_valid():
serializer.save() serializer.save()
data = { data = {
"song": song[0].id, "song": song[0].id,
"user": request.user.pk "user": request.user.pk
} }
serializer_1 = FavoriteSongSerializer(data=data)
if serializer_1.is_valid(): serializer = FavoriteSongSerializer(data=data)
serializer_1.save() if serializer.is_valid():
return Response(serializer_1.data, status=status.HTTP_201_CREATED) serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else: else:
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
@action(detail=False, methods=['post'], schema=DeleteSongSchema()) @action(detail=False, methods=['post'], schema=DeleteSongSchema())
def delete_song(self, request): def delete_song(self, request):