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 add_device_error(err_data=None): """ Add device error :param err_data: {"device": device_sn, "error_type": Error Type defined, "error_key": any text, "error_level": int, "error_info": any text} :return: iot_device_error """ valid_auth_code() err_data = err_data or get_post_json_data() device = err_data.get("device") if not device: throw(_("Request fields not found. fields: device")) if not IOTDevice.check_sn_exists(device): throw(_("Device {0} not found.").format(device)) err_data.update({"doctype": "IOT Device Error"}) doc = frappe.get_doc(err_data).insert().as_dict() return doc
def add_device(device_data=None): valid_auth_code() device = device_data or get_post_json_data() sn = device.get("sn") if IOTHDBSettings.is_default_bunch_enabled() and not device.get("bunch"): device["bunch"] = IOTHDBSettings.get_default_bunch() if not sn: throw(_("Request fields not found. fields: sn")) if IOTDevice.check_sn_exists(sn): return IOTDevice.get_device_doc(sn) device.update({"doctype": "IOT Device"}) bunch = device.get("bunch") if not frappe.get_value("IOT Device Bunch", bunch, "name"): throw(_("Device Bunch Code {0} is not valid!").format(bunch)) dev = frappe.get_doc(device).insert() frappe.enqueue('iot.hdb_api.on_device_bunch_update', device=dev) return __generate_hdb(dev)