diff --git a/examples/get_tokens.rs b/examples/get_tokens.rs index c9686d6..3f32278 100644 --- a/examples/get_tokens.rs +++ b/examples/get_tokens.rs @@ -1,7 +1,7 @@ -use centerdevice::client::*; use centerdevice::client::errors::*; -use std::env; +use centerdevice::client::*; use reqwest::IntoUrl; +use std::env; use std::io; use std::io::Write; @@ -23,23 +23,26 @@ impl CodeProvider for MyCodeProvider { Ok(code) } - } fn main() { - let client_id = env::var_os("CENTERDEVICE_CLIENT_ID").expect("Environment variable 'CENTERDEVICE_CLIENT_ID' is not set."); - let client_secret = env::var_os("CENTERDEVICE_CLIENT_SECRET").expect("Environment variable 'CENTERDEVICE_CLIENT_SECRET' is not set."); - let redirect_uri = env::var_os("CENTERDEVICE_REDIRECT_URI").expect("Environment variable 'CENTERDEVICE_REDIRECT_URI' is not set."); + let client_id = + env::var_os("CENTERDEVICE_CLIENT_ID").expect("Environment variable 'CENTERDEVICE_CLIENT_ID' is not set."); + let client_secret = env::var_os("CENTERDEVICE_CLIENT_SECRET") + .expect("Environment variable 'CENTERDEVICE_CLIENT_SECRET' is not set."); + let redirect_uri = + env::var_os("CENTERDEVICE_REDIRECT_URI").expect("Environment variable 'CENTERDEVICE_REDIRECT_URI' is not set."); let client_credentials = ClientCredentials::new( client_id.to_string_lossy().to_string(), client_secret.to_string_lossy().to_string(), ); let redirect_uri = redirect_uri.to_string_lossy().to_string(); - let code_provider = MyCodeProvider{}; + let code_provider = MyCodeProvider {}; - let result = UserTokens::from_authorization_code_flow(&client_credentials, "centerdevice.de", &redirect_uri, &code_provider) - .expect("API call failed."); + let result = + UserTokens::from_authorization_code_flow(&client_credentials, "centerdevice.de", &redirect_uri, &code_provider) + .expect("API call failed."); println!("Result: '{:?}'", result); } diff --git a/examples/old_search.rs b/examples/old_search.rs index 9afe3ed..05104a7 100644 --- a/examples/old_search.rs +++ b/examples/old_search.rs @@ -1,28 +1,32 @@ -use centerdevice::old_client::{self, CenterDeviceConfig}; use centerdevice::old_client::search::NamedSearches; +use centerdevice::old_client::{self, CenterDeviceConfig}; use std::env; fn main() { - let client_id = env::var_os("CENTERDEVICE_CLIENT_ID").expect("Environment variable 'CENTERDEVICE_CLIENT_ID' is not set."); - let client_secret = env::var_os("CENTERDEVICE_CLIENT_SECRET").expect("Environment variable 'CENTERDEVICE_CLIENT_SECRET' is not set."); - let access_token = env::var_os("CENTERDEVICE_ACCESS_TOKEN").expect("Environment variable 'CENTERDEVICE_ACCESS_TOKEN' is not set."); + let client_id = + env::var_os("CENTERDEVICE_CLIENT_ID").expect("Environment variable 'CENTERDEVICE_CLIENT_ID' is not set."); + let client_secret = env::var_os("CENTERDEVICE_CLIENT_SECRET") + .expect("Environment variable 'CENTERDEVICE_CLIENT_SECRET' is not set."); + let access_token = + env::var_os("CENTERDEVICE_ACCESS_TOKEN").expect("Environment variable 'CENTERDEVICE_ACCESS_TOKEN' is not set."); let config = CenterDeviceConfig { client_id: client_id.to_string_lossy().to_string(), client_secret: client_secret.to_string_lossy().to_string(), refresh_token: None, access_token: access_token.to_string_lossy().to_string(), - api_base_url: "centerdevice.de".to_string() + api_base_url: "centerdevice.de".to_string(), }; - let search_results= old_client::search::search_documents( + let search_results = old_client::search::search_documents( &config.api_base_url, &config.access_token, None, None, Some("centerdevice"), - NamedSearches::None - ).expect("Search failed."); + NamedSearches::None, + ) + .expect("Search failed."); println!("{}", search_results); } diff --git a/examples/refresh_access_token.rs b/examples/refresh_access_token.rs index d6ea23c..6d920ea 100644 --- a/examples/refresh_access_token.rs +++ b/examples/refresh_access_token.rs @@ -2,23 +2,26 @@ use centerdevice::client::*; use std::env; fn main() { - let client_id = env::var_os("CENTERDEVICE_CLIENT_ID").expect("Environment variable 'CENTERDEVICE_CLIENT_ID' is not set."); - let client_secret = env::var_os("CENTERDEVICE_CLIENT_SECRET").expect("Environment variable 'CENTERDEVICE_CLIENT_SECRET' is not set."); - let access_token = env::var_os("CENTERDEVICE_ACCESS_TOKEN").expect("Environment variable 'CENTERDEVICE_ACCESS_TOKEN' is not set."); - let refresh_token = env::var_os("CENTERDEVICE_REFRESH_TOKEN").expect("Environment variable 'CENTERDEVICE_REFRESH_TOKEN' is not set."); + let client_id = + env::var_os("CENTERDEVICE_CLIENT_ID").expect("Environment variable 'CENTERDEVICE_CLIENT_ID' is not set."); + let client_secret = env::var_os("CENTERDEVICE_CLIENT_SECRET") + .expect("Environment variable 'CENTERDEVICE_CLIENT_SECRET' is not set."); + let access_token = + env::var_os("CENTERDEVICE_ACCESS_TOKEN").expect("Environment variable 'CENTERDEVICE_ACCESS_TOKEN' is not set."); + let refresh_token = env::var_os("CENTERDEVICE_REFRESH_TOKEN") + .expect("Environment variable 'CENTERDEVICE_REFRESH_TOKEN' is not set."); let client_credentials = ClientCredentials::new( client_id.to_string_lossy().to_string(), client_secret.to_string_lossy().to_string(), ); - let user_tokens = UserTokens::new( - access_token.to_string_lossy().to_string(), - ); + let user_tokens = UserTokens::new(access_token.to_string_lossy().to_string()); let refresh_token = refresh_token.to_string_lossy().to_string(); let mut centerdevice = CenterDevice::new("centerdevice.de".to_string(), client_credentials, user_tokens); - let token = centerdevice.refresh_access_token(&refresh_token) + let token = centerdevice + .refresh_access_token(&refresh_token) .expect("Search failed."); println!("Refreshed Access Token: '{:?}'", token); diff --git a/src/client.rs b/src/client.rs index 54842ba..40a1873 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1,5 +1,5 @@ -pub use search::{SearchResult, Query}; pub use auth::{Code, CodeProvider, Token}; +pub use search::{Query, SearchResult}; use crate::client::errors::{ErrorKind, Result}; use failure::Fail; @@ -42,10 +42,16 @@ impl UserTokens { } } - pub fn from_authorization_code_flow(client_credentials: &ClientCredentials, base_url: &str, redirect_uri: T, code_provider: - &S) -> Result { + pub fn from_authorization_code_flow( + client_credentials: &ClientCredentials, + base_url: &str, + redirect_uri: T, + code_provider: &S, + ) -> Result { // FIXME: This allocation is unnecessary. - let redirect_url = redirect_uri.clone().into_url() + let redirect_url = redirect_uri + .clone() + .into_url() .map_err(|e| e.context(ErrorKind::ParseUrlFailed(redirect_uri.to_string())))?; let tokens = auth::authorization_code_flow(client_credentials, base_url, &redirect_url, code_provider)?; @@ -102,11 +108,11 @@ impl CenterDevice { } mod auth { - use crate::client::{ClientCredentials, CenterDevice}; use crate::client::errors::{ErrorKind, Result}; + use crate::client::{CenterDevice, ClientCredentials}; use failure::Fail; - use reqwest::{Url, IntoUrl}; + use reqwest::{IntoUrl, Url}; use serde::Deserialize; #[derive(Debug, Deserialize)] @@ -128,25 +134,33 @@ mod auth { impl Code { pub fn new(code: String) -> Code { - Code { - code - } + Code { code } } } - pub fn authorization_code_flow(client_credentials: &ClientCredentials, base_url: &str, redirect_uri: &Url, code_provider: &T) -> Result { + pub fn authorization_code_flow( + client_credentials: &ClientCredentials, + base_url: &str, + redirect_uri: &Url, + code_provider: &T, + ) -> Result { let code = get_code(client_credentials, &base_url, redirect_uri, code_provider)?; let token = exchange_code_for_token(&code, client_credentials, base_url, redirect_uri)?; Ok(token) } - fn get_code(client_credentials: &ClientCredentials, base_url: &str, redirect_uri: &Url, code_provider: &T) -> Result { + fn get_code( + client_credentials: &ClientCredentials, + base_url: &str, + redirect_uri: &Url, + code_provider: &T, + ) -> Result { let auth_endpoint = format!("https://auth.{}/authorize", base_url); let params = [ - ("client_id", client_credentials.client_id.as_str()), - ("redirect_uri", redirect_uri.as_str()), - ("response_type", "code"), + ("client_id", client_credentials.client_id.as_str()), + ("redirect_uri", redirect_uri.as_str()), + ("response_type", "code"), ]; let auth_url = Url::parse_with_params(&auth_endpoint, ¶ms) .map_err(|e| e.context(ErrorKind::ParseUrlFailed(redirect_uri.to_string())))?; @@ -154,7 +168,12 @@ mod auth { code_provider.get_code(auth_url) } - pub fn exchange_code_for_token(code: &Code, client_credentials: &ClientCredentials, base_url: &str, redirect_uri: &Url)-> Result { + pub fn exchange_code_for_token( + code: &Code, + client_credentials: &ClientCredentials, + base_url: &str, + redirect_uri: &Url, + ) -> Result { let token_endpoint = format!("https://auth.{}/token", base_url); let params = [ ("grant_type", "authorization_code"), @@ -180,9 +199,13 @@ mod auth { let url = format!("https://auth.{}/token", centerdevice.base_url); let params = [("grant_type", "refresh_token"), ("refresh_token", refresh_token)]; - let token = centerdevice.http_client + let token = centerdevice + .http_client .post(&url) - .basic_auth(¢erdevice.client_credentials.client_id, Some(¢erdevice.client_credentials.client_secret)) + .basic_auth( + ¢erdevice.client_credentials.client_id, + Some(¢erdevice.client_credentials.client_secret), + ) .form(¶ms) .send() .map_err(|e| e.context(ErrorKind::ApiCallFailed))? diff --git a/src/lib.rs b/src/lib.rs index 2d54840..cc45e18 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,6 @@ -pub mod old_client; pub mod client; pub(crate) mod net; +pub mod old_client; pub(crate) mod utils; use serde::Deserialize; @@ -16,4 +16,3 @@ pub struct Config { pub general: GeneralConfig, pub centerdevice: old_client::CenterDeviceConfig, } -