|
- from fastapi import APIRouter, Depends, HTTPException, status
- from typing import List
- from schemas.reslevis import (
- BuildingItem, PlanItem, ZoneItem, GatewayItem, TrackerItem,
- OperatorItem, SubjectItem, AlarmItem, TrackItem
- )
- from logica_reslevis.gateway import GatewayJsonRepository
-
- from security import get_current_user
-
- gateway_repo = GatewayJsonRepository()
- router = APIRouter()
-
- @router.get("/getBuildings", response_model=List[BuildingItem], tags=["Reslevis"])
- def getBuildings():
- return []
-
- @router.get("/getPlans", response_model=List[PlanItem], tags=["Reslevis"])
- def getPlans():
- return []
-
- @router.get("/getZones", response_model=List[ZoneItem], tags=["Reslevis"])
- def getZones():
- return []
-
- @router.get("/getGateways", response_model=List[GatewayItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def getGateways():
- return gateway_repo.list()
-
- @router.get("/getTrackers", response_model=List[TrackerItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def getTrackers():
- return []
-
- @router.get("/getOperators", response_model=List[OperatorItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def getOperators():
- return []
-
- @router.get("/getSubjects", response_model=List[SubjectItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def getSubjects():
- return []
-
- @router.get("/getAlarms", response_model=List[AlarmItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def getAlarms():
- return []
-
- @router.get("/getTracks", response_model=List[TrackItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def getTracks():
- return []
-
- @router.post(
- "/postGateway",
- tags=["Reslevis"],
- dependencies=[Depends(get_current_user)]
- )
- 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",
- tags=["Reslevis"],
- dependencies=[Depends(get_current_user)]
- )
- 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}",
- tags=["Reslevis"],
- dependencies=[Depends(get_current_user)]
- )
- 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.post("/postBuilding", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postBuilding(item: BuildingItem):
- return {"message": "OK"}
-
- @router.post("/postPlan", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postPlan(item: PlanItem):
- return {"message": "OK"}
-
- @router.post("/postZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postZone(item: ZoneItem):
- return {"message": "OK"}
-
- @router.post("/postTracker", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postTracker(item: TrackerItem):
- return {"message": "OK"}
-
- @router.post("/postOperator", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postOperator(item: OperatorItem):
- return {"message": "OK"}
-
- @router.post("/postSubject", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postSubject(item: SubjectItem):
- return {"message": "OK"}
-
- @router.post("/postAlarm", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postAlarm(item: AlarmItem):
- return {"message": "OK"}
-
- @router.post("/postTrack", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
- def postTrack(item: TrackItem):
- return {"message": "OK"}
|