# coding=utf-8 from library.yinkayo.api.base import ApiBase from library.yinkayo.constants import RemoteType, DoorTaskStatus class Door(ApiBase): def _remote_operate(self, doorIDs, remoteTye): """ 对门的远程操控 { "RetCode": 1, "ErrCode": 0, "ErrDesc": '', "RetData": { "tID":1 ,//任务ID "DoorID":1 ,//设备ID "DoorSN":"FC-" //设备SN } } """ data = { "IDList": ",".join(str(_) for _ in doorIDs), "RemoteType": remoteTye } response = self._post("/WebAPI/Door/Remote", **data) return response.json() def open(self, *doorIDs): return self._remote_operate(doorIDs, RemoteType.OPEN) def get_doors(self, pageNum=1, pageSize=10): data = { "pageSize": pageSize, "pageNum": pageNum } response = self._post("/WebAPI/Door/GetListOnPage", **data) return response.json() def get_door_by_id(self, doorId): response = self._post("/WebAPI/Door/GetByID", DoorId=doorId) return response.json() def get_operate_record(self, *taskIDs): data = { "sIDList": "".join((str(_) for _ in taskIDs)) } response = self._post("/WebAPI/Door/GetDoorOperationTaskRecordList", **data) return response.json() def get_sn_details(self, sn): data = { "SN": sn } response = self._post("/WebAPI/Door/GetSNDetails", **data) return response.json() @staticmethod def is_task_init(status): return status == DoorTaskStatus.TODO @staticmethod def is_task_ing(status): return status == DoorTaskStatus.ING @staticmethod def is_task_done(status): return status == DoorTaskStatus.DONE @staticmethod def is_task_fail(status): return status == DoorTaskStatus.FAIL @staticmethod def is_task_timeout(status): return status == DoorTaskStatus.TIMEOUT