18 lines
519 B
Rust
18 lines
519 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;
|
|
context.apply_response_headers(response.headers_mut());
|
|
response
|
|
}
|