def add_device(device_data=None): valid_auth_code() device = device_data or get_post_json_data() sn = device.get("sn") if not sn: throw(_("Request fields not found. fields: sn")) if IOTDevice.check_sn_exists(sn): # TODO: Check for bunch code when device is existing. return IOTDevice.get_device_doc(sn) device.update({"doctype": "IOT Device"}) doc = frappe.get_doc(device).insert().as_dict() url = IOTHDBSettings.get_callback_url() if url: """ Fire callback data """ user_list = IOTDevice.find_owners_by_bunch(device.get("bunch")) frappe.enqueue('iot.hdb_api.fire_callback', cb_url=url + "/api/datachanged", cb_data={ 'cmd': 'add_device', 'sn': sn, 'users': user_list }) return doc
def update_device_bunch(device_data=None): valid_auth_code() data = device_data or get_post_json_data() bunch = data.get("bunch") sn = data.get("sn") if sn is None: throw(_("Request fields not found. fields: sn")) dev = IOTDevice.get_device_doc(sn) if not dev: throw(_("Device is not found. SN:{0}").format(sn)) if bunch == "": bunch = None if dev.bunch == bunch: return dev org_bunch = dev.bunch dev.update_bunch(bunch) url = IOTHDBSettings.get_callback_url() if url: """ Fire callback data """ org_user_list = IOTDevice.find_owners_by_bunch(org_bunch) user_list = IOTDevice.find_owners_by_bunch(bunch) frappe.enqueue('iot.hdb_api.fire_callback', cb_url=url + "/api/datachanged", cb_data={ 'cmd': 'update_device', 'sn': sn, 'add_users': user_list, 'del_users': org_user_list }) return dev