Use automatically generated user agent for http requests based on crate metadata

This commit is contained in:
Daan Boerlage 2023-04-08 02:06:36 +02:00
parent af8e480ef8
commit 91a7b4d2f1
Signed by: daan
GPG key ID: FCE070E1E4956606

View file

@ -2,13 +2,15 @@ use async_trait::async_trait;
use reqwest::{Request, Response};
use reqwest_middleware::{Middleware, Next, Result};
pub const USER_AGENT: &str = "osrs-prometheus-exporter";
pub struct DefaultHeaderMiddleware {}
pub struct DefaultHeaderMiddleware {
user_agent: String,
}
impl DefaultHeaderMiddleware {
pub fn new() -> Self {
DefaultHeaderMiddleware {}
DefaultHeaderMiddleware {
user_agent: format!("{}/{}", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"))
}
}
}
@ -20,8 +22,8 @@ impl Middleware for DefaultHeaderMiddleware {
extensions: &mut task_local_extensions::Extensions,
next: Next<'_>,
) -> Result<Response> {
req.headers_mut()
.insert("User-Agent", USER_AGENT.parse().unwrap());
let ua = self.user_agent.as_str();
req.headers_mut().insert("User-Agent", ua.parse().unwrap());
next.run(req, extensions).await
}