diff options
author | David Blajda <blajda@hotmail.com> | 2019-02-03 22:30:15 +0000 |
---|---|---|
committer | David Blajda <blajda@hotmail.com> | 2019-02-03 22:30:15 +0000 |
commit | 96715ceb58b24ee7220d98e421701daa550f44db (patch) | |
tree | 2d00984339efab0549fa07079be623b2a7b634f8 /src/kraken/mod.rs | |
parent | 0a5892c67fb02e09a621ac8796ac84232935f5c3 (diff) |
Add Helix and Kraken scopes. Client Config and allow injecting of responses
Diffstat (limited to 'src/kraken/mod.rs')
-rw-r--r-- | src/kraken/mod.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/kraken/mod.rs b/src/kraken/mod.rs index fbec045..4046377 100644 --- a/src/kraken/mod.rs +++ b/src/kraken/mod.rs @@ -1,7 +1,10 @@ use crate::client::Client as GenericClient; -use crate::client::Version; +use crate::client::{Version, ClientConfig}; +use crate::client::ClientTrait; pub use super::types; +use crate::client::{KrakenScope, Scope}; + mod namespaces; pub mod models; @@ -12,17 +15,34 @@ pub struct Client { impl Client { pub fn new(id: &str) -> Client { + let config = ClientConfig::default(); + Client { + inner: GenericClient::new(id, config, Version::Kraken) + } + } + + pub fn new_with_config(id: &str, config: ClientConfig) -> Client { Client { - inner: GenericClient::new(id, Version::Kraken) + inner: GenericClient::new(id, config, Version::Kraken) } } pub fn authenticate(self, secret: &str) -> AuthClientBuilder { AuthClientBuilder::new(self, secret) } + + pub fn id<'a>(&'a self) -> &'a str { &self.inner.id() } + pub fn domain<'a>(&'a self) -> &'a str { &self.inner.domain() } + pub fn auth_domain<'a>(&'a self) -> &'a str { &self.inner.auth_domain() } + pub fn authenticated(&self) -> bool { self.inner.authenticated() } + + pub fn scopes(&self) -> Vec<KrakenScope> { + self.inner.scopes().into_iter().filter_map(|item| { + if let Scope::Kraken(scope) = item { Some(scope) } else { None } + }).collect() + } } -use crate::client::Scope; use crate::client::AuthClientBuilder as GenericAuthClientBuilder; pub struct AuthClientBuilder { |