diff options
Diffstat (limited to 'src/kraken/namespaces')
-rw-r--r-- | src/kraken/namespaces/clips.rs | 33 | ||||
-rw-r--r-- | src/kraken/namespaces/mod.rs | 19 |
2 files changed, 52 insertions, 0 deletions
diff --git a/src/kraken/namespaces/clips.rs b/src/kraken/namespaces/clips.rs new file mode 100644 index 0000000..edde25b --- /dev/null +++ b/src/kraken/namespaces/clips.rs @@ -0,0 +1,33 @@ +use std::collections::BTreeMap; +use super::super::models::{Clip}; +use super::super::Client; +use crate::client::{RatelimitKey, ClientTrait, ApiRequest}; +use reqwest::Method; +use super::Namespace; + +pub struct Clips {} +type ClipsNamespace = Namespace<Clips>; + +impl ClipsNamespace { + pub fn clip(self, id: &str) -> ApiRequest<Clip> { + use self::clip; + clip(self.client, id) + } +} + +impl Client { + + pub fn clips(&self) -> ClipsNamespace { + ClipsNamespace::new(self) + } +} + +pub fn clip(client: Client, id: &str) + -> ApiRequest<Clip> +{ + let client = client.inner; + let url = String::from("https://") + client.domain() + "/kraken/clips/" + id; + let params = BTreeMap::new(); + + ApiRequest::new(url, params, client, Method::GET, Some(RatelimitKey::Default)) +} diff --git a/src/kraken/namespaces/mod.rs b/src/kraken/namespaces/mod.rs new file mode 100644 index 0000000..5f4b421 --- /dev/null +++ b/src/kraken/namespaces/mod.rs @@ -0,0 +1,19 @@ +use std::marker::PhantomData; +pub use super::models; +pub use super::Client; + +pub mod clips; + +pub struct Namespace<T> { + client: Client, + _type: PhantomData<T> +} + +impl<T> Namespace<T> { + pub fn new(client: &Client) -> Self { + Namespace { + client: client.clone(), + _type: PhantomData, + } + } +} |