def request(url, method, data=None, serializers=None): '''Simple function for making a POST request and handling different status codes. @param url : str the url to hit @param data : optional, dict the data to include @param serializers : optional, dict a mapping of serializer functions for any fields that need so''' # serialize any fields that need so if data and serializers is not None: data = _serializers.serialize(data, **serializers) method_fn = getattr(requests, method) response = method_fn(url, data=data) if 200 == response.status_code: data = response.content if data and serializers is not None: data = json.loads(data) data = _serializers.serialize(data, **serializers) return data else: return None
def wrapper(*args, **kwargs): data = dict(web.input()) data = serializers.serialize(data, **_serializers) kwargs.update(data) data = func(*args, **kwargs) if data is not None: data = serializers.serialize(data, **_serializers) return json.dumps(data) web.header('Content-Type', 'application/json')