From 678e3d3f28cb8594204dc5e2b7597ae66a4582c7 Mon Sep 17 00:00:00 2001 From: David Blajda Date: Thu, 27 Dec 2018 22:03:23 +0000 Subject: Use Id types for endpoints and implement kraken headers --- src/kraken/namespaces/clips.rs | 33 +++++++++++++++++++++++++++++++++ src/kraken/namespaces/mod.rs | 19 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/kraken/namespaces/clips.rs create mode 100644 src/kraken/namespaces/mod.rs (limited to 'src/kraken/namespaces') 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; + +impl ClipsNamespace { + pub fn clip(self, id: &str) -> ApiRequest { + 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 +{ + 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 { + client: Client, + _type: PhantomData +} + +impl Namespace { + pub fn new(client: &Client) -> Self { + Namespace { + client: client.clone(), + _type: PhantomData, + } + } +} -- cgit v1.2.3