Coverage for src/app/core/middleware.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.14.3, created at 2026-06-24 08:34 +0000

1import uuid 

2 

3from fastapi import Request 

4from starlette.middleware.base import BaseHTTPMiddleware 

5 

6from app.core.request_context import set_request_id 

7 

8 

9class RequestContextMiddleware(BaseHTTPMiddleware): 

10 async def dispatch(self, request: Request, call_next): 

11 request_id = request.headers.get("X-Request-ID", str(uuid.uuid4())) 

12 

13 set_request_id(request_id) 

14 

15 response = await call_next(request) 

16 response.headers["X-Request-ID"] = request_id 

17 

18 return response