Source code for flask_utils.errors._error_template
from typing import Any
from typing import Dict
from flask import Response
from flask import jsonify
from flask_utils.errors.base_class import _BaseFlaskException
[docs]
def _generate_error_dict(error: _BaseFlaskException) -> Dict[str, Any]:
"""
This function is used to generate a dict of the error passed
:param error: The error containing the message and solution
:type error: _BaseFlaskException
:return: Returns a dict containing a json representation of the error
:rtype: Dict[str, Any]
:Example:
.. code-block:: python
from flask_utils import ConflictError # or any other error
from flask_utils.errors._error_template import _generate_error_dict
json = _generate_error_dict(error)
# Sample output:
# {
# "success": False,
# "error": {
# "type": "ConflictError",
# "name": "ConflictError",
# "message": "This is the message",
# "solution": "This is the solution"
# },
# "code": 409
# }
.. versionadded:: 0.8.0
"""
return {
"success": False,
"error": {
"type": error.__class__.__name__,
"name": error.name,
"message": error.msg,
"solution": error.solution,
},
"code": error.status_code,
}
[docs]
def _generate_error_response(error: _BaseFlaskException) -> Response:
"""
This function is used to generate a json of the error passed
:param error: The error containing the message and solution
:type error: _BaseFlaskException
:return: Returns a json containing all the info
:rtype: flask.Response
:Example:
.. code-block:: python
from flask_utils.errors import _BaseFlaskException
from flask_utils.errors._error_template import _generate_error_response
class MyError(_BaseFlaskException):
self.name = "MyError"
self.msg = msg
self.solution = solution
self.status_code = 666
error = MyError("This is an error", "This is the solution")
response = _generate_error_response(error, 666)
.. versionchanged:: 0.8.0
This function was renamed from ``_generate_error_json`` to ``_generate_error_response``.
It now returns a ``flask.Response`` object, calling
:func:`~flask_utils.errors._error_template._generate_error_dict` to generate the dict that will be returned.
.. versionadded:: 0.1.0
"""
json = _generate_error_dict(error)
resp: Response = jsonify(json)
resp.status_code = error.status_code
return resp