Consultation des alertes de consommation, filtrable par site_id et severity a l'identique du contrat GET /alerts de l'API Mock. Reprend le gabarit endpoints -> services -> repositories -> models pose par sites, sur la table alert deja creee par la revision Alembic e6d2026091501. Generalise aussi le garde-fou OpenAPI du 403 (ROUTES_A_ROLE) au-dela du seul tag users, pour que l'ajout d'alerts a la liste des routes protegees par role soit reellement verifie. Closes #59
24 lines
662 B
Python
24 lines
662 B
Python
from fastapi import APIRouter
|
|
|
|
from app.api.deps import AlertServiceDep, LecteurDep
|
|
from app.api.openapi import REPONSE_VALIDATION
|
|
from app.schemas.alert import AlertResponse, AlertSeverity
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get(
|
|
"",
|
|
response_model=list[AlertResponse],
|
|
summary="Liste les alertes",
|
|
responses=REPONSE_VALIDATION,
|
|
)
|
|
async def list_alerts(
|
|
_: LecteurDep,
|
|
service: AlertServiceDep,
|
|
site_id: str | None = None,
|
|
severity: AlertSeverity | None = None,
|
|
) -> list[AlertResponse]:
|
|
alertes = await service.list_all(site_id=site_id, severity=severity)
|
|
return [AlertResponse.model_validate(alerte) for alerte in alertes]
|