diff --git a/influxdb2_client/src/api/ready.rs b/influxdb2_client/src/api/ready.rs index 504b081771..6d86d3d06c 100644 --- a/influxdb2_client/src/api/ready.rs +++ b/influxdb2_client/src/api/ready.rs @@ -35,13 +35,9 @@ mod tests { #[tokio::test] async fn ready() { - let token = "some-token"; + let mock_server = mock("GET", "/ready").create(); - let mock_server = mock("GET", "/ready") - .match_header("Authorization", format!("Token {}", token).as_str()) - .create(); - - let client = Client::new(&mockito::server_url(), token); + let client = Client::new(&mockito::server_url(), ""); let _result = client.ready().await; diff --git a/influxdb2_client/src/api/setup.rs b/influxdb2_client/src/api/setup.rs index 3b2ac4eb59..24102e7c42 100644 --- a/influxdb2_client/src/api/setup.rs +++ b/influxdb2_client/src/api/setup.rs @@ -119,13 +119,9 @@ mod tests { #[tokio::test] async fn is_onboarding_allowed() { - let token = "some-token"; + let mock_server = mock("GET", "/api/v2/setup").create(); - let mock_server = mock("GET", "/api/v2/setup") - .match_header("Authorization", format!("Token {}", token).as_str()) - .create(); - - let client = Client::new(&mockito::server_url(), token); + let client = Client::new(&mockito::server_url(), ""); let _result = client.is_onboarding_allowed().await; @@ -142,7 +138,6 @@ mod tests { let retention_period_hrs = 1; let mock_server = mock("POST", "/api/v2/setup") - .match_header("Authorization", format!("Token {}", token).as_str()) .match_body( format!( r#"{{"username":"{}","org":"{}","bucket":"{}","password":"{}","retentionPeriodHrs":{}}}"#, @@ -204,13 +199,11 @@ mod tests { #[tokio::test] async fn onboarding_opt() { - let token = "some-token"; let username = "some-user"; let org = "some-org"; let bucket = "some-bucket"; let mock_server = mock("POST", "/api/v2/setup") - .match_header("Authorization", format!("Token {}", token).as_str()) .match_body( format!( r#"{{"username":"{}","org":"{}","bucket":"{}"}}"#, @@ -220,7 +213,7 @@ mod tests { ) .create(); - let client = Client::new(&mockito::server_url(), token); + let client = Client::new(&mockito::server_url(), ""); let _result = client .onboarding(username, org, bucket, None, None, None) diff --git a/influxdb2_client/src/lib.rs b/influxdb2_client/src/lib.rs index 9c417b6609..0fe80f80c7 100644 --- a/influxdb2_client/src/lib.rs +++ b/influxdb2_client/src/lib.rs @@ -64,10 +64,7 @@ use futures::{Stream, StreamExt}; use reqwest::{Body, Method}; use serde::Serialize; use snafu::{ResultExt, Snafu}; -use std::{ - fmt, - io::{self, Write}, -}; +use std::io::{self, Write}; pub mod data_point; pub use data_point::{DataPoint, FieldValue, WriteDataPoint}; @@ -106,7 +103,7 @@ pub enum RequestError { pub struct Client { /// The base URL this client sends requests to pub url: String, - auth_header: String, + auth_header: Option, reqwest: reqwest::Client, } @@ -120,19 +117,30 @@ impl Client { /// ``` /// let client = influxdb2_client::Client::new("http://localhost:8888", "my-token"); /// ``` - pub fn new(url: impl Into, auth_token: impl fmt::Display) -> Self { + pub fn new(url: impl Into, auth_token: impl Into) -> Self { + let token = auth_token.into(); + let auth_header = if token.is_empty() { + None + } else { + Some(format!("Token {}", token)) + }; + Self { url: url.into(), - auth_header: format!("Token {}", auth_token), + auth_header, reqwest: reqwest::Client::new(), } } /// Consolidate common request building code fn request(&self, method: Method, url: &str) -> reqwest::RequestBuilder { - self.reqwest - .request(method, url) - .header("Authorization", &self.auth_header) + let mut req = self.reqwest.request(method, url); + + if let Some(auth) = &self.auth_header { + req = req.header("Authorization", auth); + } + + req } /// Write line protocol data to the specified organization and bucket.