mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-10 10:22:20 +01:00
Marietje 4.1: Addition of Django REST framework, Swagger, Dark mode and updates to Django and Bootstrap
This commit is contained in:
50
marietje/queues/api/v1/serializers.py
Normal file
50
marietje/queues/api/v1/serializers.py
Normal file
@ -0,0 +1,50 @@
|
||||
import time
|
||||
|
||||
from rest_framework import serializers
|
||||
|
||||
from marietje.api.v1.serializers import UserRelatedFieldSerializer
|
||||
from queues.models import Queue, Playlist, PlaylistSong
|
||||
from songs.api.v1.serializers import SongSerializer
|
||||
|
||||
|
||||
class PlaylistSongSerializer(serializers.ModelSerializer):
|
||||
song = SongSerializer()
|
||||
user = UserRelatedFieldSerializer()
|
||||
|
||||
class Meta:
|
||||
model = PlaylistSong
|
||||
fields = ["id", "playlist", "song", "user", "played_at"]
|
||||
|
||||
|
||||
class PlaylistSerializer(serializers.ModelSerializer):
|
||||
songs = PlaylistSongSerializer(many=True)
|
||||
|
||||
class Meta:
|
||||
model = Playlist
|
||||
fields = [
|
||||
"id",
|
||||
"songs",
|
||||
]
|
||||
|
||||
|
||||
class QueueSerializer(serializers.ModelSerializer):
|
||||
current_song = serializers.SerializerMethodField()
|
||||
queue = serializers.SerializerMethodField()
|
||||
|
||||
def get_current_song(self, queue):
|
||||
return PlaylistSongSerializer(queue.current_song()).data
|
||||
|
||||
def get_queue(self, queue):
|
||||
return PlaylistSongSerializer(queue.queue(), many=True).data
|
||||
|
||||
class Meta:
|
||||
model = Queue
|
||||
fields = [
|
||||
"id",
|
||||
"name",
|
||||
"playlist",
|
||||
"random_playlist",
|
||||
"current_song",
|
||||
"queue",
|
||||
"started_at",
|
||||
]
|
||||
Reference in New Issue
Block a user