dashboard/backend/helpers/error_handler.py

53 lines
1.2 KiB
Python
Raw Normal View History

from flask import jsonify
from jsonschema import ValidationError
class KratosError(Exception):
pass
class AuthentikError(Exception):
pass
2022-01-18 10:48:18 +01:00
class HydraError(Exception):
pass
class BadRequest(Exception):
pass
class Unauthorized(Exception):
pass
def bad_request_error(e):
message = e.args[0] if e.args else "Bad request to the server."
2021-11-16 12:04:40 +01:00
return jsonify({"errorMessage": message}), 400
def validation_error(e):
original_error = e.description
return (
jsonify({"errorMessage": "{} is not valid.".format(original_error.path[0])}),
400,
)
def kratos_error(e):
2022-01-18 10:48:18 +01:00
message = "[KratosError] " + e.args[0] if e.args else "Failed to contact Kratos."
status_code = e.args[1] if e.args else 500
return jsonify({"errorMessage": message}), status_code
def hydra_error(e):
message = "[HydraError] " + e.args[0] if e.args else "Failed to contact Hydra."
status_code = e.args[1] if e.args else 500
return jsonify({"errorMessage": message}), status_code
def global_error(e):
2021-11-16 12:04:40 +01:00
message = str(e)
2022-01-18 10:48:18 +01:00
return jsonify({"errorMessage": message}), 500
def unauthorized_error(e):
message = str(e)
2022-06-09 12:26:50 +02:00
return jsonify({"errorMessage": message}), 403