изменил метод по добавлению трека в избранное
This commit is contained in:
parent
cd188d06a6
commit
13a045465c
|
|
@ -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()
|
||||||
else:
|
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||||
return Response(serializer_1.errors, status=status.HTTP_400_BAD_REQUEST)
|
else:
|
||||||
|
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):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue