champ-chatbot / exceptions.py
qyle's picture
deployment
389d6f7 verified
from enum import Enum
from constants import (
STATUS_CODE_BAD_REQUEST,
STATUS_CODE_CONTENT_TOO_LARGE,
STATUS_CODE_INTERNAL_SERVER_ERROR,
STATUS_CODE_LENGTH_REQUIRED,
STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
)
class FileValidationError(Enum):
MISSING_SIZE = "MISSING_SIZE"
FILE_TOO_LARGE = "FILE_TOO_LARGE"
MISSING_FILE_NAME = "MISSING_FILE_NAME"
FILE_NAME_TOO_LARGE = "FILE_NAME_TOO_LARGE"
INVALID_FILE_NAME = "INVALID_FILE_NAME"
INVALID_MIME_TYPE = "INVALID_MIME_TYPE"
UNSUPPORTED_EXTENSION = "UNSUPPORTED_EXTENSION"
EMPTY_FILE = "EMPTY_FILE"
class FileValidationException(Exception):
def __init__(self, error: FileValidationError):
self.error = error
FILE_VALIDATION_ERROR_STATUS_CODES = {
FileValidationError.MISSING_SIZE: STATUS_CODE_LENGTH_REQUIRED,
FileValidationError.FILE_TOO_LARGE: STATUS_CODE_CONTENT_TOO_LARGE,
FileValidationError.MISSING_FILE_NAME: STATUS_CODE_BAD_REQUEST,
FileValidationError.FILE_NAME_TOO_LARGE: STATUS_CODE_BAD_REQUEST,
FileValidationError.INVALID_FILE_NAME: STATUS_CODE_BAD_REQUEST,
FileValidationError.INVALID_MIME_TYPE: STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
FileValidationError.UNSUPPORTED_EXTENSION: STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
FileValidationError.EMPTY_FILE: STATUS_CODE_BAD_REQUEST,
}
class FileExtractionError(Enum):
INVALID_MIME_TYPE = "INVALID_MIME_TYPE"
NO_TEXT = "NO_TEXT"
TEXT_EXTRACTION_TIMEOUT = "TEXT_EXTRACTION_TIMEOUT"
UNSAFE_ZIP = "UNSAFE_ZIP"
FILE_TOO_LARGE = "FILE_TOO_LARGE"
MALFORMED_FILE = "MALFORMED_FILE"
class FileExtractionException(Exception):
def __init__(self, error: FileExtractionError):
self.error = error
FILE_EXTRACTION_ERROR_STATUS_CODES = {
FileExtractionError.INVALID_MIME_TYPE: STATUS_CODE_UNSUPPORTED_MEDIA_TYPE,
FileExtractionError.NO_TEXT: STATUS_CODE_BAD_REQUEST,
FileExtractionError.TEXT_EXTRACTION_TIMEOUT: STATUS_CODE_INTERNAL_SERVER_ERROR,
FileExtractionError.UNSAFE_ZIP: STATUS_CODE_INTERNAL_SERVER_ERROR,
FileExtractionError.FILE_TOO_LARGE: STATUS_CODE_CONTENT_TOO_LARGE,
FileExtractionError.MALFORMED_FILE: STATUS_CODE_BAD_REQUEST,
}