You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.8 KiB
77 lines
1.8 KiB
class AppError(Exception):
|
|
code = "internal_error"
|
|
message = "An unexpected error occurred."
|
|
|
|
def __init__(self, message: str | None = None) -> None:
|
|
super().__init__(message or self.message)
|
|
self.detail = message or self.message
|
|
|
|
|
|
class NotFoundError(AppError):
|
|
code = "not_found"
|
|
message = "Resource not found."
|
|
|
|
|
|
class ConflictError(AppError):
|
|
code = "conflict"
|
|
message = "Resource conflict."
|
|
|
|
|
|
class ValidationError(AppError):
|
|
code = "validation_error"
|
|
message = "Validation failed."
|
|
|
|
|
|
class UnauthorizedError(AppError):
|
|
code = "unauthorized"
|
|
message = "Authentication is required."
|
|
|
|
|
|
class AuthenticationFailedError(UnauthorizedError):
|
|
code = "authentication_failed"
|
|
message = "Invalid username or password."
|
|
|
|
|
|
class AuthSessionExpiredError(UnauthorizedError):
|
|
code = "auth_session_expired"
|
|
message = "Authentication session is no longer valid."
|
|
|
|
|
|
class DirectoryNotFoundError(NotFoundError):
|
|
code = "directory_not_found"
|
|
message = "Directory does not exist."
|
|
|
|
|
|
class DirectoryConflictError(ConflictError):
|
|
code = "directory_conflict"
|
|
message = "Directory already exists."
|
|
|
|
|
|
class FileNotFoundError(NotFoundError):
|
|
code = "file_not_found"
|
|
message = "File does not exist."
|
|
|
|
|
|
class FileConflictError(ConflictError):
|
|
code = "file_conflict"
|
|
message = "File already exists."
|
|
|
|
|
|
class UploadNotFoundError(NotFoundError):
|
|
code = "upload_not_found"
|
|
message = "Upload session does not exist."
|
|
|
|
|
|
class UploadConflictError(ConflictError):
|
|
code = "upload_conflict"
|
|
message = "Upload state conflict."
|
|
|
|
|
|
class RangeNotSatisfiableError(AppError):
|
|
code = "range_not_satisfiable"
|
|
message = "Requested byte range is not satisfiable."
|
|
|
|
|
|
class PreviewNotSupportedError(AppError):
|
|
code = "preview_not_supported"
|
|
message = "Preview is not supported for this file type."
|
|
|