from fastapi import APIRouter from typing import List from ..schemas.reslevis import ( BuildingItem, PlanItem, ZoneItem, GatewayItem, TrackerItem, OperatorItem, SubjectItem, AlarmItem, TrackItem ) from ..logica_reslevis.gateway import GatewayJsonRepository from ..schemas.reslevis import GatewayItem from fastapi import HTTPException gateway_repo = GatewayJsonRepository() router = APIRouter() @router.get("/getBuildings", response_model=List[BuildingItem]) def getBuildings(): return [] @router.post("/postBuilding") def postBuilding(item: BuildingItem): return {"message": "OK"} @router.get("/getPlans", response_model=List[PlanItem]) def getPlans(): return [] @router.post("/postPlan") def postPlan(item: PlanItem): return {"message": "OK"} @router.get("/getZones", response_model=List[ZoneItem]) def getZones(): return [] @router.post("/postZone") def postZone(item: ZoneItem): return {"message": "OK"} @router.get("/getGateways", response_model=List[GatewayItem]) def getGateways(): return gateway_repo.list() @router.post("/postGateway") def postGateway(item: GatewayItem): try: gateway_repo.add(item) return {"message": "OK"} except ValueError as e: raise HTTPException(status_code=409, detail=str(e)) except Exception as e: raise HTTPException(status_code=500, detail=f"Errore interno: {e}") @router.put("/updateGateway") def updateGateway(item: GatewayItem): try: gateway_repo.update(item) return {"message": "OK"} except ValueError as e: msg = str(e) if "non trovato" in msg: raise HTTPException(status_code=404, detail=msg) raise HTTPException(status_code=409, detail=msg) except Exception as e: raise HTTPException(status_code=500, detail=f"Errore interno: {e}") @router.delete("/removeGateway/{gateway_id}") def removeGateway(gateway_id: str): try: gateway_repo.remove(gateway_id) return {"message": "OK"} except ValueError as e: raise HTTPException(status_code=404, detail=str(e)) except Exception as e: raise HTTPException(status_code=500, detail=f"Errore interno: {e}") @router.get("/getTrackers", response_model=List[TrackerItem]) def getTrackers(): return [] @router.post("/postTracker") def postTracker(item: TrackerItem): return {"message": "OK"} @router.get("/getOperators", response_model=List[OperatorItem]) def getOperators(): return [] @router.post("/postOperator") def postOperator(item: OperatorItem): return {"message": "OK"} @router.get("/getSubjects", response_model=List[SubjectItem]) def getSubjects(): return [] @router.post("/postSubject") def postSubject(item: SubjectItem): return {"message": "OK"} @router.get("/getAlarms", response_model=List[AlarmItem]) def getAlarms(): return [] @router.post("/postAlarm") def postAlarm(item: AlarmItem): return {"message": "OK"} @router.get("/getTracks", response_model=List[TrackItem]) def getTracks(): return [] @router.post("/postTrack") def postTrack(item: TrackItem): return {"message": "OK"}