diff options
author | David Blajda <blajda@hotmail.com> | 2018-12-16 21:45:58 +0000 |
---|---|---|
committer | David Blajda <blajda@hotmail.com> | 2018-12-16 21:45:58 +0000 |
commit | 23ea9413cd0e29eb451df08c5c799d64f56a1342 (patch) | |
tree | 226a2bc179e41c675aa0ed34ddc1fda7c55c277a /src/helix/namespaces/clips.rs | |
parent | 27267ed98fc839b51ae4621fd1aa230f7f068bdc (diff) |
Move endpoints functions into namespaces
Diffstat (limited to 'src/helix/namespaces/clips.rs')
-rw-r--r-- | src/helix/namespaces/clips.rs | 42 |
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) +} |