24 lines
654 B
Python
24 lines
654 B
Python
from typing import Optional
|
|
|
|
|
|
class AppException(Exception):
|
|
"""
|
|
Base class for application specific exceptions that can also be used as API error responses.
|
|
"""
|
|
code: str = 'unspecified_error'
|
|
status_code: int = 400
|
|
message: str
|
|
|
|
def __init__(self, message: str, *, code: Optional[str] = None, status_code: Optional[int] = None):
|
|
if code is not None:
|
|
self.code = code
|
|
if status_code is not None:
|
|
self.status_code = status_code
|
|
self.message = message
|
|
|
|
def to_dict(self) -> dict:
|
|
return {
|
|
'code': self.code,
|
|
'message': self.message,
|
|
}
|