Skip to content
Snippets Groups Projects

Refactor auth handling wrapper

Files
4
@@ -6,14 +6,35 @@
"""
import socket
from http import HTTPStatus
from functools import wraps
from flask import (
current_app,
jsonify,
Response,
)
def error_as_json(error, code):
"""Format an error as a JSON response
"""
return {
"code": code,
"title": HTTPStatus(code).phrase,
"message": str(error),
}
def _jsonify(out):
if isinstance(out, tuple) and len(out) == 2:
data, code = out
return _jsonify(data), code
if isinstance(out, Response): # don't touch it
return out
return jsonify(out)
def as_json(func):
"""Format a function's output as a JSON reponse
@@ -24,11 +45,7 @@ def as_json(func):
"""
@wraps(func)
def decorated(*args, **kwargs):
out = func(*args, **kwargs)
if isinstance(out, tuple) and len(out) == 2:
data, code = out
return jsonify(data), code
return jsonify(out)
return _jsonify(func(*args, **kwargs))
return decorated
Loading