Files
aivideo/backend/app/common/errors/app_error.py

46 lines
1.4 KiB
Python

class AppError(Exception):
def __init__(
self,
message: str,
*,
code: int,
status_code: int,
errors: list[dict] | None = None,
) -> None:
super().__init__(message)
self.message = message
self.code = code
self.status_code = status_code
self.errors = errors or []
class AuthenticationError(AppError):
def __init__(self, message: str = "unauthorized") -> None:
super().__init__(message, code=10001, status_code=401)
class AuthorizationError(AppError):
def __init__(self, message: str = "forbidden") -> None:
super().__init__(message, code=10002, status_code=403)
class ValidationAppError(AppError):
def __init__(self, message: str, errors: list[dict] | None = None) -> None:
super().__init__(message, code=10003, status_code=422, errors=errors)
class NotFoundAppError(AppError):
def __init__(self, message: str, *, code: int = 40400) -> None:
super().__init__(message, code=code, status_code=404)
class ConflictAppError(AppError):
def __init__(self, message: str, *, code: int = 40900) -> None:
super().__init__(message, code=code, status_code=409)
class BusinessAppError(AppError):
def __init__(self, message: str, *, code: int, status_code: int = 400) -> None:
super().__init__(message, code=code, status_code=status_code)