whFalsa / app /api /deps.py
codeBOKER's picture
first commit
102dd4f
Raw
History Blame Contribute Delete
838 Bytes
from fastapi import Header, HTTPException, Request, status
from app.services.container import ServiceContainer
def get_container(request: Request) -> ServiceContainer:
container = getattr(request.app.state, "container", None)
if container is None:
raise HTTPException(
status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
detail="Service container is not initialized",
)
return container
def verify_admin_api_key(
request: Request,
x_admin_api_key: str | None = Header(default=None, alias="X-Admin-Api-Key"),
) -> None:
expected = get_container(request).settings.admin_api_key
if not x_admin_api_key or x_admin_api_key != expected:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid admin API key",
)