def returnContainer(self, id): """ Description - Mark a container as taken back from an user Parameters - id: containerId Return values - status code(number) previous host(string) container id(string) container type(string) """ headers = { "Authorization": Jwt.addDate(self.secretKey), "apiKey": self.apiKey, "Content-Type": "application/json", } try: r = requests.post( baseUrl + self.ver + Uri.returnContainer + str(id), headers=headers, ) except EnvironmentError as error: print(error) return None if r.status_code == 200: if r.json()["message"] == "Already Return": return r.status_code return r.status_code else: return r.status_code
def rentContainer(self, id, userApiKey): """ Description - Rent a container to an user Parameters - id: container id userApiKey: the apiKey of the user, you can get it by calling `fetchUserToken(self, user)` Return values - status code(number) """ headers = { "Authorization": Jwt.addDate(self.secretKey), "apiKey": self.apiKey, "userApiKey": userApiKey, } r = requests.post(baseUrl + self.ver + Uri.lendContainer + str(id), headers=headers) return r.status_code
def fetchSocketNamespaceAndToken(self): """ Description - Fetch crucial information used for connecting to server websocket Parameters - N/A Retrun values - status code(number), token(string) real uri(string) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey } r = requests.get(baseUrl + self.ver + Uri.socketToken, headers=headers) json = r.json() (token, uri) = (json["token"], json["uri"]) return (r.status_code, token, uri)
def fetchUserToken(self, user): """ Description - fetch the apiKey of a specific user Parameters - user: phone number of the user Return values - status code(number) api key(string) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey } r = requests.get(baseUrl + self.ver + Uri.userToken + user, headers=headers) if r.status_code == 200: json = r.json() return (r.status_code, json["apiKey"]) else: return (r.status_code, "")
def modifyDeliveryBoxInfo(self, boxId, body): """ Description - modify info of the box Parameters - boxId: the id of the target box body: new info Return values - status code(number) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey, "Content-Type": "application/json", } r = requests.post( baseUrl + self.ver + Uri.modifyDeliveryBoxInfo + str(boxId), headers=headers, json=body, ) return r.status_code
def reloadContainer(self, id): """ Description - Mark a container as clean after used Parameters - id: containerId date: timestamps of the action Return values - status code(number) """ headers = { "Authorization": Jwt.addDate(self.secretKey), "apiKey": self.apiKey, "Content-Type": "application/json", } try: r = requests.post( baseUrl + self.ver + Uri.reloadContainer + str(id), headers=headers, ) except EnvironmentError as error: print(error) return None return r.status_code
def signDeliveryBox(self, boxId): """ Description - sign the =box Parameters - boxId: target box Return values - status code(number) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey, "Content-Type": "application/json", } r = requests.post( baseUrl + self.ver + Uri.signDeliveryBox, headers=headers, json={ "phone": "", "boxList": [{ "ID": str(boxId) }] }, ) return r.status_code
def createDeliveryStockBox(self, ids): """ Descriptions - Create a stocked delivery box Parameters - ids: id of containers for stocking Return values - status code(number) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey, "Content-Type": "application/json", } r = requests.post( baseUrl + self.ver + Uri.createStockBox, headers=headers, json={ "phone": "", "boxList": [{ "boxName": "", "containerList": ids }] }, ) return r.status_code
def usedAmount(self): """ Description - get used amount of this bot Parameters - N/A Return values - status code(number) total amount of used containers(number) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey } r = requests.get(baseUrl + self.ver + Uri.usedAmount, headers=headers) json = r.json() print(json) storeRecords = json["store"] total = 0 if r.status_code == 200: for record in storeRecords: total += record["amount"] return (r.status_code, total) else: return (r.status_code, 0)
def modifyDeliveryBoxState(self, boxId, newState): """ Description - modify state of the box Parameters - boxId: the id of the box newState: the new state of the box Return values - status code(number) """ headers = { "Authorization": Jwt.standard(self.secretKey), "apiKey": self.apiKey, "Content-Type": "application/json", } r = requests.post( baseUrl + self.ver + Uri.modifyDeliveryBoxState, headers=headers, json={ "phone": "", "boxList": [{ "id": str(boxId), "newState": newState }] }, ) return r.status_code