osrs-prometheus-exporter/src/transport/middleware/headers.rs

30 lines
No EOL
779 B
Rust

use async_trait::async_trait;
use reqwest::{Request, Response};
use reqwest_middleware::{Middleware, Next, Result};
pub struct DefaultHeaderMiddleware {
user_agent: String,
}
impl DefaultHeaderMiddleware {
pub fn new() -> Self {
DefaultHeaderMiddleware {
user_agent: format!("{}/{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))
}
}
}
#[async_trait]
impl Middleware for DefaultHeaderMiddleware {
async fn handle(
&self,
mut req: Request,
extensions: &mut task_local_extensions::Extensions,
next: Next<'_>,
) -> Result<Response> {
let ua = self.user_agent.as_str();
req.headers_mut().insert("User-Agent", ua.parse().unwrap());
next.run(req, extensions).await
}
}