Initial commit: Document Translation API with Excel, Word, PowerPoint support

This commit is contained in:
2025-11-30 10:48:58 +01:00
commit 793d94c93e
41 changed files with 3617 additions and 0 deletions

51
utils/exceptions.py Normal file
View File

@@ -0,0 +1,51 @@
"""
Custom exceptions for the Document Translation API
"""
from fastapi import HTTPException
class TranslationError(Exception):
"""Base exception for translation errors"""
pass
class UnsupportedFileTypeError(TranslationError):
"""Raised when an unsupported file type is provided"""
pass
class FileSizeLimitExceededError(TranslationError):
"""Raised when a file exceeds the size limit"""
pass
class LanguageNotSupportedError(TranslationError):
"""Raised when a language code is not supported"""
pass
class DocumentProcessingError(TranslationError):
"""Raised when there's an error processing the document"""
pass
def handle_translation_error(error: Exception) -> HTTPException:
"""
Convert translation errors to HTTP exceptions
Args:
error: Exception that occurred
Returns:
HTTPException with appropriate status code and message
"""
if isinstance(error, UnsupportedFileTypeError):
return HTTPException(status_code=400, detail=str(error))
elif isinstance(error, FileSizeLimitExceededError):
return HTTPException(status_code=413, detail=str(error))
elif isinstance(error, LanguageNotSupportedError):
return HTTPException(status_code=400, detail=str(error))
elif isinstance(error, DocumentProcessingError):
return HTTPException(status_code=500, detail=str(error))
else:
return HTTPException(status_code=500, detail="An unexpected error occurred during translation")