Add support for passing status_code or getting it from request
This commit is contained in:
parent
59a3123cde
commit
2a1e50e6ef
@ -43,13 +43,25 @@ def signature(*args, **kw):
|
|||||||
caller, falling back to json''')
|
caller, falling back to json''')
|
||||||
dataformat = wsme.rest.json
|
dataformat = wsme.rest.json
|
||||||
try:
|
try:
|
||||||
|
status_code = None
|
||||||
|
result = f(*args, **kwargs)
|
||||||
|
|
||||||
|
# Status code in result
|
||||||
|
if isinstance(result, (list, tuple)) and len(result) == 2:
|
||||||
|
result, status_code = result
|
||||||
|
|
||||||
|
# Status code is attached to request
|
||||||
|
if not status_code and hasattr(flask.request, 'status_code'):
|
||||||
|
status_code = flask.request.status_code
|
||||||
|
|
||||||
res = flask.make_response(
|
res = flask.make_response(
|
||||||
dataformat.encode_result(
|
dataformat.encode_result(
|
||||||
f(*args, **kwargs),
|
result,
|
||||||
funcdef.return_type
|
funcdef.return_type
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
res.mimetype = dataformat.content_type
|
res.mimetype = dataformat.content_type
|
||||||
|
res.status_code = status_code or 200
|
||||||
except:
|
except:
|
||||||
data = wsme.api.format_exception(sys.exc_info())
|
data = wsme.api.format_exception(sys.exc_info())
|
||||||
res = flask.make_response(dataformat.encode_error(None, data))
|
res = flask.make_response(dataformat.encode_error(None, data))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user