Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

292 Zeilen
8.1 KiB

  1. from fastapi import APIRouter, Depends, HTTPException
  2. from typing import List
  3. from schemas.reslevis import (
  4. BuildingItem,
  5. FloorItem,
  6. ZoneItem,
  7. GatewayItem,
  8. TrackerItem,
  9. OperatorItem,
  10. SubjectItem,
  11. AlarmItem,
  12. TrackItem,
  13. TrackerZoneItem,
  14. )
  15. from logica_reslevis.gateway import GatewayJsonRepository
  16. from logica_reslevis.building import BuildingJsonRepository
  17. from logica_reslevis.floor import FloorJsonRepository
  18. from logica_reslevis.zone import ZoneJsonRepository
  19. from logica_reslevis.tracker import TrackerJsonRepository
  20. from logica_reslevis.operator import OperatorJsonRepository
  21. from logica_reslevis.subject import SubjectJsonRepository
  22. from logica_reslevis.alarm import AlarmJsonRepository
  23. from logica_reslevis.track import TrackJsonRepository
  24. from logica_reslevis.tracker_zone import TrackerZoneJsonRepository
  25. from security import get_current_user
  26. router = APIRouter()
  27. gateway_repo = GatewayJsonRepository()
  28. building_repo = BuildingJsonRepository()
  29. floor_repo = FloorJsonRepository()
  30. zone_repo = ZoneJsonRepository()
  31. tracker_repo = TrackerJsonRepository()
  32. operator_repo = OperatorJsonRepository()
  33. subject_repo = SubjectJsonRepository()
  34. alarm_repo = AlarmJsonRepository()
  35. track_repo = TrackJsonRepository()
  36. tracker_zone_repo = TrackerZoneJsonRepository()
  37. @router.get(
  38. "/getGateways",
  39. response_model=List[GatewayItem],
  40. tags=["Reslevis"],
  41. dependencies=[Depends(get_current_user)],
  42. )
  43. def getGateways():
  44. return gateway_repo.list()
  45. @router.post("/postGateway", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  46. def postGateway(item: GatewayItem):
  47. gateway_repo.add(item)
  48. return {"message": "OK"}
  49. @router.put("/updateGateway", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  50. def updateGateway(item: GatewayItem):
  51. gateway_repo.update(item)
  52. return {"message": "OK"}
  53. @router.delete("/removeGateway/{gateway_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  54. def removeGateway(gateway_id: str):
  55. gateway_repo.remove(gateway_id)
  56. return {"message": "OK"}
  57. @router.get(
  58. "/getBuildings",
  59. response_model=List[BuildingItem],
  60. tags=["Reslevis"],
  61. dependencies=[Depends(get_current_user)],
  62. )
  63. def getBuildings():
  64. return building_repo.list()
  65. @router.post("/postBuilding", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  66. def postBuilding(item: BuildingItem):
  67. building_repo.add(item)
  68. return {"message": "OK"}
  69. @router.put("/updateBuilding", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  70. def updateBuilding(item: BuildingItem):
  71. building_repo.update(item)
  72. return {"message": "OK"}
  73. @router.delete("/removeBuilding/{building_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  74. def removeBuilding(building_id: str):
  75. building_repo.remove(building_id)
  76. return {"message": "OK"}
  77. @router.get(
  78. "/getFloors",
  79. response_model=List[FloorItem],
  80. tags=["Reslevis"],
  81. dependencies=[Depends(get_current_user)],
  82. )
  83. def getFloors():
  84. return floor_repo.list()
  85. @router.post("/postFloor", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  86. def postFloor(item: FloorItem):
  87. floor_repo.add(item)
  88. return {"message": "OK"}
  89. @router.put("/updateFloor", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  90. def updateFloor(item: FloorItem):
  91. floor_repo.update(item)
  92. return {"message": "OK"}
  93. @router.delete("/removeFloor/{floor_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  94. def removeFloor(floor_id: str):
  95. floor_repo.remove(floor_id)
  96. return {"message": "OK"}
  97. @router.get(
  98. "/getZones",
  99. response_model=List[ZoneItem],
  100. tags=["Reslevis"],
  101. dependencies=[Depends(get_current_user)],
  102. )
  103. def getZones():
  104. return zone_repo.list()
  105. @router.post("/postZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  106. def postZone(item: ZoneItem):
  107. zone_repo.add(item)
  108. return {"message": "OK"}
  109. @router.put("/updateZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  110. def updateZone(item: ZoneItem):
  111. zone_repo.update(item)
  112. return {"message": "OK"}
  113. @router.delete("/removeZone/{zone_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  114. def removeZone(zone_id: str):
  115. zone_repo.remove(zone_id)
  116. return {"message": "OK"}
  117. @router.get(
  118. "/getTrackers",
  119. response_model=List[TrackerItem],
  120. tags=["Reslevis"],
  121. dependencies=[Depends(get_current_user)],
  122. )
  123. def getTrackers():
  124. return tracker_repo.list()
  125. @router.post("/postTracker", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  126. def postTracker(item: TrackerItem):
  127. tracker_repo.add(item)
  128. return {"message": "OK"}
  129. @router.put("/updateTracker", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  130. def updateTracker(item: TrackerItem):
  131. tracker_repo.update(item)
  132. return {"message": "OK"}
  133. @router.delete("/removeTracker/{tracker_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  134. def removeTracker(tracker_id: str):
  135. tracker_repo.remove(tracker_id)
  136. return {"message": "OK"}
  137. @router.get(
  138. "/getTrackerZones",
  139. response_model=List[TrackerZoneItem],
  140. tags=["Reslevis"],
  141. dependencies=[Depends(get_current_user)],
  142. )
  143. def getTrackerZones():
  144. return tracker_zone_repo.list()
  145. @router.post("/postTrackerZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  146. def postTrackerZone(item: TrackerZoneItem):
  147. tracker_zone_repo.add(item)
  148. return {"message": "OK"}
  149. @router.put("/updateTrackerZone", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  150. def updateTrackerZone(item: TrackerZoneItem):
  151. tracker_zone_repo.update(item)
  152. return {"message": "OK"}
  153. @router.delete("/removeTrackerZone/{tracker_zone_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  154. def removeTrackerZone(tracker_zone_id: str):
  155. tracker_zone_repo.remove(tracker_zone_id)
  156. return {"message": "OK"}
  157. @router.get(
  158. "/getTracks",
  159. response_model=List[TrackItem],
  160. tags=["Reslevis"],
  161. dependencies=[Depends(get_current_user)],
  162. )
  163. def getTracks():
  164. return track_repo.list()
  165. @router.post("/postTrack", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  166. def postTrack(item: TrackItem):
  167. track_repo.add(item)
  168. return {"message": "OK"}
  169. @router.put("/updateTrack", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  170. def updateTrack(item: TrackItem):
  171. track_repo.update(item)
  172. return {"message": "OK"}
  173. @router.delete("/removeTrack/{track_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  174. def removeTrack(track_id: str):
  175. track_repo.remove(track_id)
  176. return {"message": "OK"}
  177. @router.get(
  178. "/getOperators",
  179. response_model=List[OperatorItem],
  180. tags=["Reslevis"],
  181. dependencies=[Depends(get_current_user)],
  182. )
  183. def getOperators():
  184. return operator_repo.list()
  185. @router.post("/postOperator", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  186. def postOperator(item: OperatorItem):
  187. operator_repo.add(item)
  188. return {"message": "OK"}
  189. @router.put("/updateOperator", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  190. def updateOperator(item: OperatorItem):
  191. operator_repo.update(item)
  192. return {"message": "OK"}
  193. @router.delete("/removeOperator/{operator_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  194. def removeOperator(operator_id: str):
  195. operator_repo.remove(operator_id)
  196. return {"message": "OK"}
  197. @router.get(
  198. "/getSubjects",
  199. response_model=List[SubjectItem],
  200. tags=["Reslevis"],
  201. dependencies=[Depends(get_current_user)],
  202. )
  203. def getSubjects():
  204. return subject_repo.list()
  205. @router.post("/postSubject", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  206. def postSubject(item: SubjectItem):
  207. subject_repo.add(item)
  208. return {"message": "OK"}
  209. @router.put("/updateSubject", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  210. def updateSubject(item: SubjectItem):
  211. subject_repo.update(item)
  212. return {"message": "OK"}
  213. @router.delete("/removeSubject/{subject_id}", tags=["Reslevis"], dependencies=[Depends(get_current_user)])
  214. def removeSubject(subject_id: str):
  215. subject_repo.remove(subject_id)
  216. return {"message": "OK"}