feat(backend): ajoute les endpoints GET /sites et GET /sites/{site_id}

This commit is contained in:
Dorian PESCE
2026-09-16 11:03:06 +02:00
parent fc6600aeaf
commit 50dddf952b
14 changed files with 376 additions and 11 deletions
@@ -0,0 +1,24 @@
from fastapi import APIRouter, HTTPException, status
from app.api.deps import LecteurDep, SiteServiceDep
from app.schemas.site import SiteResponse
from app.services.site import SiteNotFoundError
router = APIRouter()
@router.get("", response_model=list[SiteResponse], summary="Liste les sites")
async def list_sites(_: LecteurDep, service: SiteServiceDep) -> list[SiteResponse]:
sites = await service.list_all()
return [SiteResponse.model_validate(site) for site in sites]
@router.get("/{site_id}", response_model=SiteResponse, summary="Décrit un site")
async def get_site(site_id: str, _: LecteurDep, service: SiteServiceDep) -> SiteResponse:
try:
site = await service.get_by_id(site_id)
except SiteNotFoundError as erreur:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail="Site introuvable"
) from erreur
return SiteResponse.model_validate(site)
+2 -1
View File
@@ -1,8 +1,9 @@
from fastapi import APIRouter
from app.api.v1.endpoints import auth, health, users
from app.api.v1.endpoints import auth, health, sites, users
api_router = APIRouter()
api_router.include_router(health.router, prefix="/health", tags=["health"])
api_router.include_router(auth.router, prefix="/auth", tags=["auth"])
api_router.include_router(users.router, prefix="/users", tags=["users"])
api_router.include_router(sites.router, prefix="/sites", tags=["sites"])