33 lines
782 B
Python
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
|