feat: initialize aivideo project
This commit is contained in:
45
backend/app/common/errors/app_error.py
Normal file
45
backend/app/common/errors/app_error.py
Normal file
@@ -0,0 +1,45 @@
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user