This repository was archived by the owner on Nov 19, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathforbidden.py
More file actions
51 lines (37 loc) · 1.38 KB
/
forbidden.py
File metadata and controls
51 lines (37 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from typing import Optional
from flask_utils.errors.base_class import _BaseFlaskException
class ForbiddenError(_BaseFlaskException):
"""This is the ForbiddenError exception class.
When raised, it will return a 403 status code with the message and solution provided.
:param msg: The message to be displayed in the error.
:type msg: str
:param solution: The solution to the error.
:type solution: Optional[str]
:Example:
.. code-block:: python
from flask_utils.errors import ForbiddenError
# Inside a Flask route
@app.route('/example', methods=['POST'])
def example_route():
...
if some_condition:
raise ForbiddenError("This is a forbidden error.")
The above code would return the following JSON response from Flask:
.. code-block:: json
{
"success": false,
"error": {
"type": "ForbiddenError",
"name": "Forbidden",
"message": "This is a forbidden error.",
"solution": "Try again."
},
"code": 403
}
.. versionadded:: 0.1.0
"""
def __init__(self, msg: str, solution: Optional[str] = "Try again.") -> None:
self.name = "Forbidden"
self.msg = msg
self.solution = solution
self.status_code = 403