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")