Files
vpsx-fast/app/routers/status.py
Bernhard Radermacher (hakisto) 5300c35429 users and status working
2025-08-29 18:19:46 +02:00

35 lines
1021 B
Python

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)