Beispiel #1
0
    def get_email(request, key, required=True):
        val = API.get_str(request, key, required, min=3, max=64)
        if val is None:
            return None

        if "@" not in val:
            raise BadParams("Bad email")

        return val.lower()
Beispiel #2
0
    def get_json(request, key, required=True):
        val = API.get(request, key, required)
        if val is None:
            return None

        try:
            val = json.loads(val.decode('utf8'))
        except:
            raise BadParams(key)

        return val
Beispiel #3
0
    def get_float(request, key, required=True):
        val = API.get(request, key, required)
        if val is None:
            return None

        try:
            val = float(val)
        except ValueError:
            raise BadParams(key)

        return val
Beispiel #4
0
    def get_bool(request, key, required=True):
        val = API.get(request, key, required)
        if val is None:
            return None

        if val in [b"0", b"false", b"False"]:
            return False

        if val in [b"1", b"true", b"True"]:
            return True

        raise BadParams(key)
Beispiel #5
0
    def get_int_arr(request, key, required=True, variants=None):
        val = API.get(request, key, required)
        if val is None:
            return None

        try:
            vals = map(int, val.split(","))
        except Exception:
            raise BadParams(key)

        for val in vals:
            API.__test_variant(key, val, variants)
        return vals
Beispiel #6
0
    def get_int(request,
                key,
                required=True,
                variants=None,
                min=None,
                max=None,
                forced=False):
        """ Checks extra conditions for an int arg
        """
        val = API.get(request, key, required)
        if val is None:
            return None

        try:
            val = int(val)
        except Exception:
            raise BadParams(key)

        if (max is not None) and val > max:
            if forced:
                val = max
            else:
                raise BadParams("%s > %s" % (key, max))

        if (min is not None) and val < min:
            if forced:
                val = min
            else:
                raise BadParams("%s < %s" % (key, min))

        if variants and forced and len(variants) and not val in variants:
            val = variants[0]

        API.__test_variant(key, val, variants)

        return val
Beispiel #7
0
 def get_str_regex(request, key, regex=None, **kwargs):
     name = API.get_str(request, key, **kwargs)
     if regex and not re.match(regex, name):
         raise BadParams(key)
     return name
Beispiel #8
0
 def __test_length(key, val, min, max):
     if len(val) < min or len(val) > max:
         raise BadParams(key)
Beispiel #9
0
 def __test_variant(key, val, variants):
     if variants and not val in variants:
         raise BadParams(key)
Beispiel #10
0
 def get(request, key, required):
     val = request.args.get(key) or request.form.get(
         key) or request.cookies.get(key)
     if val is None and required:
         raise BadParams(key)
     return val