From 767d4bd2e108b5e735e2fa6786c83af394959f6c Mon Sep 17 00:00:00 2001 From: David Blajda Date: Thu, 27 Dec 2018 22:26:02 +0000 Subject: Shim AuthClientBuilder for helix and kraken clients --- src/kraken/mod.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/kraken') diff --git a/src/kraken/mod.rs b/src/kraken/mod.rs index 0201295..fbec045 100644 --- a/src/kraken/mod.rs +++ b/src/kraken/mod.rs @@ -16,4 +16,48 @@ impl Client { inner: GenericClient::new(id, Version::Kraken) } } + + pub fn authenticate(self, secret: &str) -> AuthClientBuilder { + AuthClientBuilder::new(self, secret) + } +} + +use crate::client::Scope; +use crate::client::AuthClientBuilder as GenericAuthClientBuilder; + +pub struct AuthClientBuilder { + inner: GenericAuthClientBuilder, +} + +impl AuthClientBuilder { + pub fn new(client: Client, secret: &str) -> AuthClientBuilder { + AuthClientBuilder { + inner: GenericAuthClientBuilder::new(client.inner, secret), + } + } + + pub fn build(self) -> Client { + let client = self.inner.build(); + Client { + inner: client + } + } + + pub fn scope(self, scope: Scope) -> AuthClientBuilder { + AuthClientBuilder { + inner: self.inner.scope(scope) + } + } + + pub fn scopes(self, scopes: Vec) -> AuthClientBuilder { + AuthClientBuilder { + inner: self.inner.scopes(scopes) + } + } + + pub fn token(self, token: &str) -> AuthClientBuilder { + AuthClientBuilder { + inner: self.inner.token(token) + } + } } -- cgit v1.2.3