core/services/exception.py

23 lines
779 B
Python
Raw Normal View History

2024-06-04 05:10:57 +00:00
import logging
from collections.abc import Awaitable
from typing import Callable
2024-06-04 05:10:57 +00:00
from starlette.middleware.base import BaseHTTPMiddleware
from starlette.requests import Request
from starlette.responses import JSONResponse, Response
2024-06-04 05:10:57 +00:00
logger = logging.getLogger(__name__)
2024-06-04 05:10:57 +00:00
logging.basicConfig(level=logging.DEBUG)
class ExceptionHandlerMiddleware(BaseHTTPMiddleware):
async def dispatch(self, request: Request, call_next: Callable[[Request], Awaitable[Response]]) -> Response:
2024-06-04 05:10:57 +00:00
try:
return await call_next(request)
except Exception:
logger.exception("Unhandled exception occurred")
2025-05-16 06:23:48 +00:00
return JSONResponse(
{"detail": "An error occurred. Please try again later."},
status_code=500,
)