Beispiel #1
0
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
Beispiel #2
0
def on_device_bunch_update(device, org_bunch=None):
    url = None  #IOTHDBSettings.get_redis_url()
    print(device.sn, device.bunch)
    if url:
        """ Fire callback data """
        cb_data = {
            'cmd': 'add_device',
            'sn': device.sn,
        }
        if org_bunch is not None:
            cb_data['cmd'] = 'update_device'
            cb_data['add_users'] = IOTDevice.find_owners_by_bunch(device.bunch)
            cb_data['del_users'] = IOTDevice.find_owners_by_bunch(org_bunch)
        else:
            cb_data['users'] = IOTDevice.find_owners_by_bunch(device.bunch)
        print('------------------------------------------')
        print(json.dumps(cb_data))
        print('------------------------------------------')
Beispiel #3
0
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