feat: add Nailong Fund advisor capabilities
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
"""HTTP cross-cutting concerns."""
|
||||
|
||||
from collections.abc import Awaitable, Callable
|
||||
|
||||
from starlette.requests import Request
|
||||
from starlette.responses import Response
|
||||
|
||||
TRACE_ID_HEADER = "X-Trace-ID"
|
||||
RequestHandler = Callable[[Request], Awaitable[Response]]
|
||||
|
||||
|
||||
async def attach_trace_id(request: Request, call_next: RequestHandler) -> Response:
|
||||
"""Return the request trace identifier on both success and error responses."""
|
||||
response = await call_next(request)
|
||||
context = getattr(request.state, "request_context", None)
|
||||
trace_id = getattr(context, "trace_id", None) or getattr(request.state, "trace_id", None)
|
||||
trace_id = trace_id or request.headers.get(TRACE_ID_HEADER)
|
||||
if trace_id:
|
||||
response.headers[TRACE_ID_HEADER] = str(trace_id)
|
||||
return response
|
||||
Reference in New Issue
Block a user