def route(self, func): if (func == 'getall'): return {k:v for k, v in self.config.iteritems()} elif (func == 'get'): item = bh.get_string('item') if not item: return { 'error' : 'Item not set' } if item in self.config: return self.config[item] elif (func == 'set'): item = bh.get_string('item') if not item: return { 'error' : 'Item not set' } if not item in self.config: return { 'error' : 'Item not found' } value = bh.get_string('value') if item == 'password' and not value == '': value = generate_password_hash(value) self.config[item] = value result = self.config.validate(self.validator) return bh.success_response() bh.raise404()
def route(self, func): if (func == 'getall'): return {k: v for k, v in self.config.iteritems()} elif (func == 'get'): item = bh.get_string('item') if not item: return {'error': 'Item not set'} if item in self.config: return self.config[item] elif (func == 'set'): item = bh.get_string('item') if not item: return {'error': 'Item not set'} if not item in self.config: return {'error': 'Item not found'} value = bh.get_string('value') if item == 'password' and not value == '': value = generate_password_hash(value) self.config[item] = value result = self.config.validate(self.validator) return bh.success_response() bh.raise404()
def device_set_parameter(self, device, attr): if (attr == 'parameter'): resp = device.set_parameter(bh.get_string('parameter'), bh.get_string('value')) elif attr in ['name', 'model', 'protocol']: value = bh.get_string(attr) if value is None: return "Attribute \"" + attr + "\" not found" resp = device.__setattr__(attr, value) else: bh.raise404() if resp: return TELLSTICK_SUCCESS else: return TELLSTICK_ERROR_NOT_FOUND
def set(self, func): item = bh.get_string('item') if not item: return { 'error' : 'Item not set' } if not item in self.config: return { 'error' : 'Item not found' } value = bh.get_string('value') if item == 'password' and not value == '': value = generate_password_hash(value) self.config[item] = value result = self.config.validate(self.validator) return bh.success_response()
def add_device(self): if (self.config['editable'] is False): return "Client is not editable" clientid = bh.get_int('id') if (clientid != self.config['client_id']): return "Client \"" + str(clientid) + "\" not found!" try: return self.core.add_device( bh.get_string('name'), bh.get_string('protocol'), bh.get_string('model')) except Exception as e: return e
def route_sensor(self, func): # The ID should be an integer, but we store them in the dictionary as # strings, so treat as such id = str(bh.get_int('id')) self.load_sensors() resp = TELLSTICK_SUCCESS if (self.sensors.has_key(id)): sensor = self.sensors[id] if (func == 'info'): return self.sensor_to_dict(sensor, True) elif (func == 'setignore'): sensor.ignore = 1 if bh.get_int('ignore') == 1 else 0 elif (func == 'setname'): sensor.name = bh.get_string('name') if resp is None: bh.raise404() else: resp = "Sensor " + "\"" + str(id) + "\" not found!" return self.map_response(resp)
def get(self, func): item = bh.get_string('item') if not item: return { 'error' : 'Item not set' } if item in self.config: return self.config[item]
def check_apikey(self): if not self.config['apikey']: return True key = bh.get_string('key') return key == self.config['apikey']