PDF-Data_Extractor / src /catch_exceptions.py
Wasim
Sync: robust vehicle parser + full project
2e237ce
raw
history blame
882 Bytes
from functools import wraps
from fastapi import HTTPException
from configuration import service_logger
def catch_exceptions(func):
@wraps(func)
async def wrapper(*args, **kwargs):
try:
service_logger.info(f"Calling endpoint: {func.__name__}")
if kwargs and "file" in kwargs:
service_logger.info(f"Processing file: {kwargs['file'].filename}")
if kwargs and "xml_file_name" in kwargs:
service_logger.info(f"Asking for file: {kwargs['xml_file_name']}")
return await func(*args, **kwargs)
except FileNotFoundError:
raise HTTPException(status_code=404, detail="No xml file")
except Exception:
service_logger.error("Error see traceback", exc_info=1)
raise HTTPException(status_code=422, detail="Error see traceback")
return wrapper