19 lines
632 B
Rust
19 lines
632 B
Rust
use crate::context::RequestContext;
|
|
use axum::extract::Request;
|
|
use axum::middleware::Next;
|
|
use axum::response::Response;
|
|
|
|
pub async fn inject_request_context(mut request: Request, next: Next) -> Response {
|
|
let context =
|
|
RequestContext::from_http_parts(request.method(), request.uri(), request.headers());
|
|
request.extensions_mut().insert(context.clone());
|
|
|
|
let mut response = next.run(request).await;
|
|
if context.trace.path == "/api/auth" {
|
|
context.apply_trace_response_headers(response.headers_mut());
|
|
} else {
|
|
context.apply_response_headers(response.headers_mut());
|
|
}
|
|
response
|
|
}
|