door.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # coding=utf-8
  2. from library.yinkayo.api.base import ApiBase
  3. from library.yinkayo.constants import RemoteType, DoorTaskStatus
  4. class Door(ApiBase):
  5. def _remote_operate(self, doorIDs, remoteTye):
  6. """
  7. 对门的远程操控
  8. {
  9. "RetCode": 1,
  10. "ErrCode": 0,
  11. "ErrDesc": '',
  12. "RetData": {
  13. "tID":1 ,//任务ID
  14. "DoorID":1 ,//设备ID
  15. "DoorSN":"FC-" //设备SN
  16. }
  17. }
  18. """
  19. data = {
  20. "IDList": ",".join(str(_) for _ in doorIDs),
  21. "RemoteType": remoteTye
  22. }
  23. response = self._post("/WebAPI/Door/Remote", **data)
  24. return response.json()
  25. def open(self, *doorIDs):
  26. return self._remote_operate(doorIDs, RemoteType.OPEN)
  27. def get_doors(self, pageNum=1, pageSize=10):
  28. data = {
  29. "pageSize": pageSize,
  30. "pageNum": pageNum
  31. }
  32. response = self._post("/WebAPI/Door/GetListOnPage", **data)
  33. return response.json()
  34. def get_door_by_id(self, doorId):
  35. response = self._post("/WebAPI/Door/GetByID", DoorId=doorId)
  36. return response.json()
  37. def get_operate_record(self, *taskIDs):
  38. data = {
  39. "sIDList": "".join((str(_) for _ in taskIDs))
  40. }
  41. response = self._post("/WebAPI/Door/GetDoorOperationTaskRecordList", **data)
  42. return response.json()
  43. def get_sn_details(self, sn):
  44. data = {
  45. "SN": sn
  46. }
  47. response = self._post("/WebAPI/Door/GetSNDetails", **data)
  48. return response.json()
  49. @staticmethod
  50. def is_task_init(status):
  51. return status == DoorTaskStatus.TODO
  52. @staticmethod
  53. def is_task_ing(status):
  54. return status == DoorTaskStatus.ING
  55. @staticmethod
  56. def is_task_done(status):
  57. return status == DoorTaskStatus.DONE
  58. @staticmethod
  59. def is_task_fail(status):
  60. return status == DoorTaskStatus.FAIL
  61. @staticmethod
  62. def is_task_timeout(status):
  63. return status == DoorTaskStatus.TIMEOUT