agreg-server/server/backend/adapters/http/devices.py

21 lines
752 B
Python
Raw Normal View History

import logging
from fastapi import APIRouter, Depends, HTTPException
from domain.exceptions import DatabaseError
from services.devices_service import DeviceService
from dependencies import get_device_service
from ._devices_schemas import DeviceResponseSchema
devices_router = APIRouter(prefix="/devices", tags=["devices"])
log = logging.getLogger(__name__)
@devices_router.get("", response_model=list[DeviceResponseSchema])
def list_devices(service: DeviceService = Depends(get_device_service)):
try:
return [DeviceResponseSchema.from_domain(d) for d in service.get_all_devices()]
except DatabaseError as e:
log.error("DatabaseError: %s", e)
raise HTTPException(status_code=500, detail="Erreur interne du serveur")