summaryrefslogtreecommitdiff
path: root/src/kraken/namespaces
diff options
context:
space:
mode:
authorDavid Blajda <blajda@hotmail.com>2018-12-27 22:03:23 +0000
committerDavid Blajda <blajda@hotmail.com>2018-12-27 22:03:23 +0000
commit678e3d3f28cb8594204dc5e2b7597ae66a4582c7 (patch)
tree55b563cfdc09dab8f18c1f4d688ebf0c2187985c /src/kraken/namespaces
parentcb1b144e48ee357a76f551433d4886f092d259c8 (diff)
Use Id types for endpoints and implement kraken headers
Diffstat (limited to 'src/kraken/namespaces')
-rw-r--r--src/kraken/namespaces/clips.rs33
-rw-r--r--src/kraken/namespaces/mod.rs19
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,
+ }
+ }
+}