import asyncio from fastapi import APIRouter, Depends, HTTPException, status from .user import require_admin router = APIRouter(prefix="/abspacken", tags=["abspacken"]) async def get_kurix(kgs: float) -> float: # die berechnung ist sehr aufwändig, braucht lange! await asyncio.sleep(2) return kgs / 1.13 @router.post("/uwe") async def uwe( kgs: float = 10, firma: str = "Vodafone", _: None = Depends(require_admin), ) -> str: kurix = await get_kurix(kgs) return ( f"UWE hat bei {firma} einen beachtlichen Haufen von " f"{kgs} Kg ({kurix:.3f} Kurix) auf den Läufer geschissen." ) @router.get("/torsten/{ding}") async def torsten(ding: str) -> str: return f"Der Alphakevin Torsten hat ein langes {ding}." @router.get( "/kys", responses={ status.HTTP_200_OK: { "description": "Einfach NEIN", "content": None, }, status.HTTP_418_IM_A_TEAPOT: { "description": "Commit Sudoku", "content": None, }, }, ) async def kys() -> None: """ Heiße Botschaften aus der Nachbarschaft warten auf Sie. Also:
Sinnlose Todesdrohungen und Synapsenfasching. """ raise HTTPException(status.HTTP_418_IM_A_TEAPOT, "Go kill yourself")