Esempio n. 1
0
    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
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
    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
Esempio n. 6
0
    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