Files
vpsx-fast/app/routers/status.py

35 lines
1004 B
Python
Raw Permalink Normal View History

2025-08-29 18:19:46 +02:00
from fastapi import APIRouter, Depends, HTTPException
from sqlmodel import select, Session
2025-08-31 07:53:17 +02:00
import alchemy
2025-08-30 10:06:47 +02:00
from dependencies import get_session
2025-09-01 11:36:22 +00:00
from routers.models import Status
2025-08-29 18:19:46 +02:00
2025-08-31 07:53:17 +02:00
router = APIRouter(prefix="/status", tags=["status"])
2025-08-29 18:19:46 +02:00
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
2025-08-30 10:06:47 +02:00
2025-08-31 07:53:17 +02:00
@router.get("/",
response_model=list[Status])
2025-08-30 10:06:47 +02:00
async def get_statuses(
session=Depends(get_session)):
"""Get list of all statuses"""
2025-08-31 07:53:17 +02:00
return session.exec(select(alchemy.Status)).all()
2025-08-30 10:06:47 +02:00
2025-08-31 07:53:17 +02:00
@router.get("/{status}",
response_model=Status,
responses={404: {"description": "Not found"}})
2025-08-29 18:19:46 +02:00
async def get_status(
status: str,
session=Depends(get_session)):
return _get_status(status, session)