Files
MarietjeDjango/marietje/queues/api/v1/serializers.py

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",
]