clientid works
This commit is contained in:
@ -12,6 +12,11 @@ from ..auth import schemas as auth_schemas
|
||||
from . import schemas
|
||||
|
||||
|
||||
def get_queue_by_id(queue_id: UUID, db: Session) -> models.Queue:
|
||||
q = db.query(models.Queue).filter(models.Queue.id == queue_id).first()
|
||||
return q
|
||||
|
||||
|
||||
def get_user_queues(
|
||||
current_user: Annotated[auth_schemas.User, Depends(auth_services.get_current_user)]
|
||||
) -> list[schemas.QueueInDb]:
|
||||
@ -51,3 +56,29 @@ def get_detailed_queue(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Not Found",
|
||||
)
|
||||
|
||||
|
||||
def join_queue(
|
||||
queue_id: UUID,
|
||||
client: Annotated[auth_schemas.AnonUser, Depends(auth_services.get_anon_user)],
|
||||
db: Annotated[Session, Depends(get_db)],
|
||||
) -> schemas.QueueUser:
|
||||
q = get_queue_by_id(queue_id, db)
|
||||
if q:
|
||||
if not q.users.filter(models.QueueUser.user_id == client.id).first():
|
||||
last_qu = q.users.order_by(models.QueueUser.position.desc()).first()
|
||||
position = last_qu.position + 1 if last_qu else 0
|
||||
new_qu = models.QueueUser(
|
||||
user_id=client.id, queue_id=q.id, position=position
|
||||
)
|
||||
db.add(new_qu)
|
||||
db.commit()
|
||||
return new_qu
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_409_CONFLICT,
|
||||
detail="Already joined",
|
||||
)
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
detail="Not Found",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user