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()
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
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
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)
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
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
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
def __test_length(key, val, min, max): if len(val) < min or len(val) > max: raise BadParams(key)
def __test_variant(key, val, variants): if variants and not val in variants: raise BadParams(key)
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