Files
deb-python-wsme/wsmeext/flask.py
Christophe de Vienne 5f99ad0edd Remove ipdb
2013-03-25 14:43:14 +01:00

33 lines
782 B
Python

from __future__ import absolute_import
import functools
import wsme
import wsme.api
from wsme.rest.args import (
args_from_params, args_from_body, combine_args
)
import flask
def signature(*args, **kw):
sig = wsme.signature(*args, **kw)
def decorator(f):
sig(f)
funcdef = wsme.api.FunctionDefinition.get(f)
@functools.wraps(f)
def wrapper(*args, **kw):
args, kwargs = combine_args(
funcdef,
args_from_params(funcdef, flask.request.args),
args_from_body(funcdef, flask.request.data, flask.request.content_type)
)
resp = make_response(f(*args, **kw))
return resp
wrapper.wsme_func = f
return wrapper
return decorator