from fastapi import APIRouter, Depends, HTTPException from sqlmodel import select, Session from dependencies import get_session, ACTIVE_USER from routers.status_model import Status router = APIRouter( prefix="/status", tags=["status"], ) @router.get("/", response_model=list[Status]) async def get_statuses( current_user: ACTIVE_USER, session=Depends(get_session)): """Get list of all statuses""" return session.exec(select(Status)).all() def _get_status(status: str, session: Session): result = session.get(Status, status) if result is None: result = session.scalar(select(Status).where(Status.name == status)) if result is None: raise HTTPException(status_code=404, detail=f"Status {status!r} not found") return result @router.get("/{status}", responses={404: {"description": "Not found"}}) async def get_status( status: str, current_user: ACTIVE_USER, session=Depends(get_session)): return _get_status(status, session)