mirror of
https://gitlab.science.ru.nl/technicie/MarietjeDjango.git
synced 2025-12-10 09:22:20 +01:00
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
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",
|
|
]
|