Add JSONAPI decorator
This commit is contained in:
15
slow/slow.py
15
slow/slow.py
@@ -159,3 +159,18 @@ def JSONResponse(d: dict, status=200):
|
|||||||
return HTTPResponse(
|
return HTTPResponse(
|
||||||
json.dumps(d), status=status, content_type="text/json; charset=utf-8"
|
json.dumps(d), status=status, content_type="text/json; charset=utf-8"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def JSONAPI(func):
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
result = func(*args, **kwargs)
|
||||||
|
if not isinstance(result, dict):
|
||||||
|
if (
|
||||||
|
isinstance(result, tuple)
|
||||||
|
and len(result) == 2
|
||||||
|
and isinstance(result[1], dict)
|
||||||
|
and isinstance(result[0], int)
|
||||||
|
):
|
||||||
|
return JSONResponse(result[1], result[0])
|
||||||
|
raise RuntimeError("Return value of JSONAPI route is not a dictionary")
|
||||||
|
return JSONResponse(result)
|
||||||
|
|||||||
Reference in New Issue
Block a user