degal/req.py
author Tero Marttila <terom@fixme.fi>
Wed, 10 Jun 2009 23:33:28 +0300
changeset 84 891545a38a2b
parent 44 533b7e8b5d3b
permissions -rw-r--r--
change utils.LazyProperty to store the cached value using obj.__dict__
import cgi
import Cookie
import os

"""
    XXX: legacy CGI crap
"""

vars = cgi.FieldStorage()

# the cookie with the user's current series
cookie = Cookie.SimpleCookie(os.environ.get('HTTP_COOKIE', None))

class token (object) :
    pass

REQUIRED_PARAM = token()

def get_str (key, default=REQUIRED_PARAM) :
    if key in vars :
        return vars[key].value.decode('utf8', 'replace')
    elif default is REQUIRED_PARAM :
        raise ValueError("Required param %s" % key)
    else :
        return default

def get_str_list (key, default=REQUIRED_PARAM) :
    if key in vars :
        return [val.decode('utf8', 'replace') for val in vars.getlist(key)]
    elif default is REQUIRED_PARAM :
        raise ValueError("Required param %s" % key)
    else :
        return default

def get_int (key, default=REQUIRED_PARAM) :
    if key in vars :
        return int(vars[key].value)
    elif default is REQUIRED_PARAM :
        raise ValueError("Required param %s" % key)
    else :
        return default

def get_int_list (key, default=REQUIRED_PARAM) :
    if key in vars :
      return [int(val) for val in vars.getlist(key)]
    elif default is REQUIRED_PARAM :
        raise ValueError("Required param %s" % key)
    else :
        return default