Files
MarietjeDjango/marietje/queues/services.py
2023-11-25 07:38:28 +01:00

45 lines
1.1 KiB
Python

from typing import Optional
from django.contrib.auth import get_user_model
from queues.models import Queue, Playlist
from django.conf import settings
User = get_user_model()
def get_user_or_default_queue(request) -> Queue:
"""Get the user or default queue from a request."""
if request.user is None:
return get_default_queue()
else:
return get_queue_for_user(request.user)
def get_queue_for_user(user: User) -> Optional[Queue]:
"""Get the queue for a User."""
if user.queue is None:
return None
else:
return user.queue.queue
def get_default_queue() -> Queue:
"""Get the default queue."""
try:
return Queue.objects.get(pk=settings.DEFAULT_QUEUE)
except Queue.DoesNotExist:
return get_first_queue()
def get_first_queue() -> Queue:
"""Get the first Queue object or create one."""
queue = Queue.objects.first()
if queue is not None:
return queue
playlist = Playlist.objects.create()
random_playlist = Playlist.objects.create()
return Queue.objects.create(name="Queue", playlist=playlist, random_playlist=random_playlist)