Add logging for API endpoints

This commit is contained in:
Lars van Rhijn
2023-11-25 07:38:28 +01:00
parent 66ac1076d3
commit 11e8ff11b8
20 changed files with 400 additions and 109 deletions

View File

@ -1,15 +1,44 @@
from queues.models import Queue
from typing import Optional
from django.contrib.auth import get_user_model
from queues.models import Queue, Playlist
from django.conf import settings
def get_user_or_default_queue(request):
"""Get the user or default queue."""
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 request.user.queue
return get_queue_for_user(request.user)
def get_default_queue():
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."""
return Queue.objects.get(pk=settings.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)