def is_valid(cls , data): valid = True if data is None: valid = False if valid: for key in ["key" , "sensorid" , "value" , "timestamp"]: if not key in data: valid = False if valid and settings.FORCE_VALID_SENSOR: try: sensor = Sensor.objects.get( pk = data["sensorid"] ) except Sensor.DoesNotExist: valid = False if valid: ts = TimeStamp.parse_datetime( data["timestamp"] ) if ts is None: valid = False if valid and settings.FORCE_VALID_KEY: valid = ApiKey.valid( data["key"] ) return valid
def is_valid(cls, data): valid = True if data is None: valid = False if valid: for key in ["key", "sensorid", "value", "timestamp"]: if not key in data: valid = False if valid and settings.FORCE_VALID_SENSOR: try: sensor = Sensor.objects.get(pk=data["sensorid"]) except Sensor.DoesNotExist: valid = False if valid: ts = TimeStamp.parse_datetime(data["timestamp"]) if ts is None: valid = False if valid and settings.FORCE_VALID_KEY: valid = ApiKey.valid(data["key"]) return valid
def is_valid(cls, data): valid = True if data is None: valid = False if valid: for key in ["key", "sensorid"]: if not key in data: valid = False data_OK = False if "value_list" in data: data_OK = True else: if "value" in data and "timestamp" in data: data_OK = True if not data_OK: valid = False if valid and settings.FORCE_VALID_SENSOR: try: sensor = Sensor.objects.get(pk=data["sensorid"]) except Sensor.DoesNotExist: valid = False if valid: ts_list = [] if "timestamp" in data: ts_list.append(data["timestamp"]) else: for item in data["value_list"]: if len(item) == 2: ts_list.append(item[0]) else: valid = False for ts in ts_list: t = TimeStamp.parse_datetime(ts) if t is None: valid = False if valid and settings.FORCE_VALID_KEY: valid = ApiKey.valid(data["key"]) return valid
def error(cls, data): if data is None: return "Error: empty payload" missing_keys = [] for key in ["key", "sensorid", "value", "timestamp"]: if not key in data: missing_keys.append(key) if missing_keys: return "Error: missing fields in payload: %s" % missing_keys ts = TimeStamp.parse_datetime(data["timestamp"]) if ts is None: return "Error: invalid timestamp - expected: YYYY-MM-DDTHH:MM:SS+zz" if settings.FORCE_VALID_KEY: if not ApiKey.valid(data["key"]): return "Error: invalid key" return None