Skip to content

Commit

Permalink
Rust fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaspustina committed May 17, 2019
1 parent 65b8a11 commit 940f492
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 44 deletions.
21 changes: 12 additions & 9 deletions examples/get_tokens.rs
Original file line number Diff line number Diff line change
@@ -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;

Expand All @@ -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);
}
20 changes: 12 additions & 8 deletions examples/old_search.rs
Original file line number Diff line number Diff line change
@@ -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);
}
19 changes: 11 additions & 8 deletions examples/refresh_access_token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
57 changes: 40 additions & 17 deletions src/client.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -42,10 +42,16 @@ impl UserTokens {
}
}

pub fn from_authorization_code_flow<T: IntoUrl + ToString + Clone, S: CodeProvider>(client_credentials: &ClientCredentials, base_url: &str, redirect_uri: T, code_provider:
&S) -> Result<UserTokens> {
pub fn from_authorization_code_flow<T: IntoUrl + ToString + Clone, S: CodeProvider>(
client_credentials: &ClientCredentials,
base_url: &str,
redirect_uri: T,
code_provider: &S,
) -> Result<UserTokens> {
// 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)?;
Expand Down Expand Up @@ -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)]
Expand All @@ -128,33 +134,46 @@ mod auth {

impl Code {
pub fn new(code: String) -> Code {
Code {
code
}
Code { code }
}
}

pub fn authorization_code_flow<T: CodeProvider>(client_credentials: &ClientCredentials, base_url: &str, redirect_uri: &Url, code_provider: &T) -> Result<Token> {
pub fn authorization_code_flow<T: CodeProvider>(
client_credentials: &ClientCredentials,
base_url: &str,
redirect_uri: &Url,
code_provider: &T,
) -> Result<Token> {
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<T: CodeProvider>(client_credentials: &ClientCredentials, base_url: &str, redirect_uri: &Url, code_provider: &T) -> Result<Code> {
fn get_code<T: CodeProvider>(
client_credentials: &ClientCredentials,
base_url: &str,
redirect_uri: &Url,
code_provider: &T,
) -> Result<Code> {
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, &params)
.map_err(|e| e.context(ErrorKind::ParseUrlFailed(redirect_uri.to_string())))?;

code_provider.get_code(auth_url)
}

pub fn exchange_code_for_token(code: &Code, client_credentials: &ClientCredentials, base_url: &str, redirect_uri: &Url)-> Result<Token> {
pub fn exchange_code_for_token(
code: &Code,
client_credentials: &ClientCredentials,
base_url: &str,
redirect_uri: &Url,
) -> Result<Token> {
let token_endpoint = format!("https://auth.{}/token", base_url);
let params = [
("grant_type", "authorization_code"),
Expand All @@ -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(&centerdevice.client_credentials.client_id, Some(&centerdevice.client_credentials.client_secret))
.basic_auth(
&centerdevice.client_credentials.client_id,
Some(&centerdevice.client_credentials.client_secret),
)
.form(&params)
.send()
.map_err(|e| e.context(ErrorKind::ApiCallFailed))?
Expand Down
3 changes: 1 addition & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -16,4 +16,3 @@ pub struct Config {
pub general: GeneralConfig,
pub centerdevice: old_client::CenterDeviceConfig,
}

0 comments on commit 940f492

Please sign in to comment.