adds track loading example

This commit is contained in:
2025-07-19 19:53:24 +02:00
parent 7c92b33f91
commit 31c6fd3265
7 changed files with 81 additions and 22 deletions
+14
View File
@@ -5,6 +5,7 @@ from playlist.serializers import TrackSerializer
from playlist.spotify import spt
from playlist.tasks import get_banter, get_and_dither_image
from drf_spectacular.utils import extend_schema
from random import choice
class TrackListView(APIView):
@extend_schema(
@@ -64,3 +65,16 @@ class TrackDetailView(APIView):
return Response(status=204)
else:
return Response({'error': 'Only superusers can delete tracks'}, status=403)
class TrackVoteView(APIView):
@extend_schema(
request=None,
responses={200: TrackSerializer},
description="Retrieve a random track for voting."
)
def get(self, request):
# TODO implement a session-based vote tracking system. Random return for now.
random_pk = choice(Track.objects.values_list('pk', flat=True))
track = Track.objects.get(pk=random_pk)
serializer = TrackSerializer(track, context={'request': request})
return Response(serializer.data)