Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

127 rader
4.2 KiB

  1. from fastapi import APIRouter, Depends, HTTPException, status
  2. from typing import List
  3. from schemas.reslevis import (
  4. BuildingItem, PlanItem, ZoneItem, GatewayItem, TrackerItem,
  5. OperatorItem, SubjectItem, AlarmItem, TrackItem
  6. )
  7. from logica_reslevis.gateway import GatewayJsonRepository
  8. from security import get_current_user
  9. gateway_repo = GatewayJsonRepository()
  10. router = APIRouter()
  11. @router.get("/getBuildings", response_model=List[BuildingItem], tags=["Reslevis"])
  12. def getBuildings():
  13. return []
  14. @router.get("/getPlans", response_model=List[PlanItem], tags=["Reslevis"])
  15. def getPlans():
  16. return []
  17. @router.get("/getZones", response_model=List[ZoneItem], tags=["Reslevis"])
  18. def getZones():
  19. return []
  20. @router.get("/getGateways", response_model=List[GatewayItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  21. def getGateways():
  22. return gateway_repo.list()
  23. @router.get("/getTrackers", response_model=List[TrackerItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  24. def getTrackers():
  25. return []
  26. @router.get("/getOperators", response_model=List[OperatorItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  27. def getOperators():
  28. return []
  29. @router.get("/getSubjects", response_model=List[SubjectItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  30. def getSubjects():
  31. return []
  32. @router.get("/getAlarms", response_model=List[AlarmItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  33. def getAlarms():
  34. return []
  35. @router.get("/getTracks", response_model=List[TrackItem], tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  36. def getTracks():
  37. return []
  38. @router.post(
  39. "/postGateway",
  40. tags=["Reslevis"],
  41. dependencies=[Depends(get_current_user)]
  42. )
  43. def postGateway(item: GatewayItem):
  44. try:
  45. gateway_repo.add(item)
  46. return {"message": "OK"}
  47. except ValueError as e:
  48. raise HTTPException(status_code=409, detail=str(e))
  49. except Exception as e:
  50. raise HTTPException(status_code=500, detail=f"Errore interno: {e}")
  51. @router.put(
  52. "/updateGateway",
  53. tags=["Reslevis"],
  54. dependencies=[Depends(get_current_user)]
  55. )
  56. def updateGateway(item: GatewayItem):
  57. try:
  58. gateway_repo.update(item)
  59. return {"message": "OK"}
  60. except ValueError as e:
  61. msg = str(e)
  62. if "non trovato" in msg:
  63. raise HTTPException(status_code=404, detail=msg)
  64. raise HTTPException(status_code=409, detail=msg)
  65. except Exception as e:
  66. raise HTTPException(status_code=500, detail=f"Errore interno: {e}")
  67. @router.delete(
  68. "/removeGateway/{gateway_id}",
  69. tags=["Reslevis"],
  70. dependencies=[Depends(get_current_user)]
  71. )
  72. def removeGateway(gateway_id: str):
  73. try:
  74. gateway_repo.remove(gateway_id)
  75. return {"message": "OK"}
  76. except ValueError as e:
  77. raise HTTPException(status_code=404, detail=str(e))
  78. except Exception as e:
  79. raise HTTPException(status_code=500, detail=f"Errore interno: {e}")
  80. @router.post("/postBuilding", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  81. def postBuilding(item: BuildingItem):
  82. return {"message": "OK"}
  83. @router.post("/postPlan", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  84. def postPlan(item: PlanItem):
  85. return {"message": "OK"}
  86. @router.post("/postZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  87. def postZone(item: ZoneItem):
  88. return {"message": "OK"}
  89. @router.post("/postTracker", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  90. def postTracker(item: TrackerItem):
  91. return {"message": "OK"}
  92. @router.post("/postOperator", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  93. def postOperator(item: OperatorItem):
  94. return {"message": "OK"}
  95. @router.post("/postSubject", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  96. def postSubject(item: SubjectItem):
  97. return {"message": "OK"}
  98. @router.post("/postAlarm", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  99. def postAlarm(item: AlarmItem):
  100. return {"message": "OK"}
  101. @router.post("/postTrack", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  102. def postTrack(item: TrackItem):
  103. return {"message": "OK"}