summaryrefslogtreecommitdiff
path: root/src/helix/namespaces/clips.rs
diff options
context:
space:
mode:
authorDavid Blajda <blajda@hotmail.com>2018-12-16 21:45:58 +0000
committerDavid Blajda <blajda@hotmail.com>2018-12-16 21:45:58 +0000
commit23ea9413cd0e29eb451df08c5c799d64f56a1342 (patch)
tree226a2bc179e41c675aa0ed34ddc1fda7c55c277a /src/helix/namespaces/clips.rs
parent27267ed98fc839b51ae4621fd1aa230f7f068bdc (diff)
Move endpoints functions into namespaces
Diffstat (limited to 'src/helix/namespaces/clips.rs')
-rw-r--r--src/helix/namespaces/clips.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/helix/namespaces/clips.rs b/src/helix/namespaces/clips.rs
new file mode 100644
index 0000000..32793c0
--- /dev/null
+++ b/src/helix/namespaces/clips.rs
@@ -0,0 +1,42 @@
+use futures::future::Future;
+use super::super::models::{DataContainer, PaginationContainer, User, Video, Clip};
+use super::super::Client;
+const API_DOMAIN: &'static str = "api.twitch.tv";
+use super::super::Namespace;
+
+pub struct Clips {}
+type ClipsNamespace = Namespace<Clips>;
+
+impl ClipsNamespace {
+ pub fn clip(self, id: &str) -> impl Future<Item=DataContainer<Clip>, Error=reqwest::Error> {
+ use self::clip;
+ clip(self.client, id)
+ }
+}
+
+impl Client {
+
+ pub fn clips(&self) -> ClipsNamespace {
+ ClipsNamespace::new(self)
+ }
+}
+
+pub fn clip(client: Client, id: &str)
+ -> impl Future<Item=DataContainer<Clip>, Error=reqwest::Error>
+{
+ let url =
+ String::from("https://") +
+ API_DOMAIN + "/helix/clips" + "?id=" + id;
+
+
+ let request = client.client().get(&url);
+ let request = client.apply_standard_headers(request);
+
+ request
+ .send()
+ .map(|mut res| {
+ println!("{:?}", res);
+ res.json::<DataContainer<Clip>>()
+ })
+ .and_then(|json| json)
+}