tofu-api/tofu_api/common/exceptions/base.py

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,
}