From af8e480ef8533ea0203740f7e8516c0f9448fc18 Mon Sep 17 00:00:00 2001 From: Daan Boerlage Date: Thu, 6 Apr 2023 19:49:26 +0200 Subject: [PATCH] Move reqwest middle into its own folder --- src/transport/http.rs | 29 ++--------------------------- src/transport/middleware/headers.rs | 28 ++++++++++++++++++++++++++++ src/transport/middleware/mod.rs | 3 +++ src/transport/mod.rs | 1 + 4 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 src/transport/middleware/headers.rs create mode 100644 src/transport/middleware/mod.rs diff --git a/src/transport/http.rs b/src/transport/http.rs index fe17a16..9554a80 100644 --- a/src/transport/http.rs +++ b/src/transport/http.rs @@ -1,11 +1,8 @@ -use async_trait::async_trait; -use reqwest::{Request, Response}; +use middleware::DefaultHeaderMiddleware; use reqwest_middleware::{ClientBuilder, ClientWithMiddleware}; -use reqwest_middleware::{Middleware, Next, Result}; use reqwest_retry::{policies::ExponentialBackoff, RetryTransientMiddleware}; use reqwest_tracing::TracingMiddleware; - -pub const USER_AGENT: &str = "osrs-prometheus-exporter"; +use crate::transport::middleware; pub fn new() -> ClientWithMiddleware { 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)) .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 { - req.headers_mut() - .insert("User-Agent", USER_AGENT.parse().unwrap()); - next.run(req, extensions).await - } -} diff --git a/src/transport/middleware/headers.rs b/src/transport/middleware/headers.rs new file mode 100644 index 0000000..b901325 --- /dev/null +++ b/src/transport/middleware/headers.rs @@ -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 { + req.headers_mut() + .insert("User-Agent", USER_AGENT.parse().unwrap()); + + next.run(req, extensions).await + } +} \ No newline at end of file diff --git a/src/transport/middleware/mod.rs b/src/transport/middleware/mod.rs new file mode 100644 index 0000000..97038e0 --- /dev/null +++ b/src/transport/middleware/mod.rs @@ -0,0 +1,3 @@ +mod headers; + +pub use headers::DefaultHeaderMiddleware; \ No newline at end of file diff --git a/src/transport/mod.rs b/src/transport/mod.rs index 3883215..6c72325 100644 --- a/src/transport/mod.rs +++ b/src/transport/mod.rs @@ -1 +1,2 @@ +mod middleware; pub mod http;