Move reqwest middle into its own folder
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Daan Boerlage 2023-04-06 19:49:26 +02:00
parent 7e9232b3f3
commit af8e480ef8
Signed by: daan
GPG key ID: FCE070E1E4956606
4 changed files with 34 additions and 27 deletions

View file

@ -1,11 +1,8 @@
use async_trait::async_trait; use middleware::DefaultHeaderMiddleware;
use reqwest::{Request, Response};
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware}; use reqwest_middleware::{ClientBuilder, ClientWithMiddleware};
use reqwest_middleware::{Middleware, Next, Result};
use reqwest_retry::{policies::ExponentialBackoff, RetryTransientMiddleware}; use reqwest_retry::{policies::ExponentialBackoff, RetryTransientMiddleware};
use reqwest_tracing::TracingMiddleware; use reqwest_tracing::TracingMiddleware;
use crate::transport::middleware;
pub const USER_AGENT: &str = "osrs-prometheus-exporter";
pub fn new() -> ClientWithMiddleware { pub fn new() -> ClientWithMiddleware {
let retry_policy = ExponentialBackoff::builder().build_with_max_retries(3); let retry_policy = ExponentialBackoff::builder().build_with_max_retries(3);
@ -19,25 +16,3 @@ pub fn new() -> ClientWithMiddleware {
.with(RetryTransientMiddleware::new_with_policy(retry_policy)) .with(RetryTransientMiddleware::new_with_policy(retry_policy))
.build() .build()
} }
struct DefaultHeaderMiddleware {}
impl DefaultHeaderMiddleware {
fn new() -> Self {
DefaultHeaderMiddleware {}
}
}
#[async_trait]
impl Middleware for DefaultHeaderMiddleware {
async fn handle(
&self,
mut req: Request,
extensions: &mut task_local_extensions::Extensions,
next: Next<'_>,
) -> Result<Response> {
req.headers_mut()
.insert("User-Agent", USER_AGENT.parse().unwrap());
next.run(req, extensions).await
}
}

View file

@ -0,0 +1,28 @@
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 {}
impl DefaultHeaderMiddleware {
pub fn new() -> Self {
DefaultHeaderMiddleware {}
}
}
#[async_trait]
impl Middleware for DefaultHeaderMiddleware {
async fn handle(
&self,
mut req: Request,
extensions: &mut task_local_extensions::Extensions,
next: Next<'_>,
) -> Result<Response> {
req.headers_mut()
.insert("User-Agent", USER_AGENT.parse().unwrap());
next.run(req, extensions).await
}
}

View file

@ -0,0 +1,3 @@
mod headers;
pub use headers::DefaultHeaderMiddleware;

View file

@ -1 +1,2 @@
mod middleware;
pub mod http; pub mod http;