diff options
Diffstat (limited to 'src/helix/namespaces')
-rw-r--r-- | src/helix/namespaces/auth.rs | 2 | ||||
-rw-r--r-- | src/helix/namespaces/clips.rs | 9 | ||||
-rw-r--r-- | src/helix/namespaces/mod.rs | 2 | ||||
-rw-r--r-- | src/helix/namespaces/users.rs | 17 | ||||
-rw-r--r-- | src/helix/namespaces/videos.rs | 20 |
5 files changed, 24 insertions, 26 deletions
diff --git a/src/helix/namespaces/auth.rs b/src/helix/namespaces/auth.rs index 1900fbf..d006e2f 100644 --- a/src/helix/namespaces/auth.rs +++ b/src/helix/namespaces/auth.rs @@ -8,7 +8,7 @@ type AuthNamespace = Namespace<Auth>; impl AuthNamespace { pub fn client_credentials(self, secret: &str) -> ApiRequest<Credentials> { - auth::client_credentials(self.client.inner, secret) + auth::client_credentials(self.client.inner, &secret) } } diff --git a/src/helix/namespaces/clips.rs b/src/helix/namespaces/clips.rs index 1de2e33..c4595ce 100644 --- a/src/helix/namespaces/clips.rs +++ b/src/helix/namespaces/clips.rs @@ -1,12 +1,11 @@ use super::*; use super::models::{DataContainer, Clip}; -use crate::types::ClipId; pub struct Clips {} type ClipsNamespace = Namespace<Clips>; impl ClipsNamespace { - pub fn clip(self, id: &ClipId) -> ApiRequest<DataContainer<Clip>> { + pub fn clip<S: ToString>(self, id: &S) -> ApiRequest<DataContainer<Clip>> { use self::clip; clip(self.client, id) } @@ -19,15 +18,15 @@ impl Client { } -pub fn clip(client: Client, id: &ClipId) +pub fn clip<S: ToString>(client: Client, id: &S) -> ApiRequest<DataContainer<Clip>> { let client = client.inner; let url = String::from("https://") + - client.domain() + "/helix/clips" + "?id=" + id.as_ref(); + client.domain() + "/helix/clips" + "?id=" + &id.to_string(); - let params = BTreeMap::new(); + let params : ParamList = BTreeMap::new(); ApiRequest::new(url, params, client, Method::GET, Some(RatelimitKey::Default)) } diff --git a/src/helix/namespaces/mod.rs b/src/helix/namespaces/mod.rs index 8adc1e3..1d4239a 100644 --- a/src/helix/namespaces/mod.rs +++ b/src/helix/namespaces/mod.rs @@ -1,7 +1,7 @@ use std::marker::PhantomData; pub use super::Client; -pub use crate::client::{RatelimitKey, ClientTrait, ApiRequest, IterableApiRequest}; +pub use crate::client::{RatelimitKey, ClientTrait, ApiRequest, IterableApiRequest, ParamList}; pub use std::collections::BTreeMap; pub use reqwest::Method; pub use super::models; diff --git a/src/helix/namespaces/users.rs b/src/helix/namespaces/users.rs index 20f2914..2e922d6 100644 --- a/src/helix/namespaces/users.rs +++ b/src/helix/namespaces/users.rs @@ -1,13 +1,12 @@ use super::*; use super::models::{DataContainer, User}; -use crate::types::UserId; +use std::string::ToString; pub struct Users {} type UsersNamespace = Namespace<Users>; impl UsersNamespace { - pub fn users(self, ids: Vec<&UserId>, logins: Vec<&str>) - -> ApiRequest<DataContainer<User>> { + pub fn users<S: ToString>(self, ids: &[S], logins: &[S]) -> ApiRequest<DataContainer<User>> { use self::users; users(self.client, ids, logins) } @@ -19,18 +18,18 @@ impl Client { } } -pub fn users( +pub fn users<S: ToString>( client: Client, - ids: Vec<&UserId>, - logins: Vec<&str>, + ids: &[S], + logins: &[S], ) -> ApiRequest<DataContainer<User>> { let client = client.inner; let url = String::from("https://") + client.domain() + &String::from("/helix/users"); - let mut params = BTreeMap::new(); + let mut params: BTreeMap<&str, &dyn ToString> = BTreeMap::new(); for id in ids { - params.insert("id", id.as_ref()); + params.insert("id", id); } for login in logins { @@ -41,5 +40,5 @@ pub fn users( } pub fn authed_as(client: Client) -> ApiRequest<DataContainer<User>> { - users(client, Vec::with_capacity(0), Vec::with_capacity(0)) + users(client, &[""], &[""]) } diff --git a/src/helix/namespaces/videos.rs b/src/helix/namespaces/videos.rs index 75b702e..9f2fd2b 100644 --- a/src/helix/namespaces/videos.rs +++ b/src/helix/namespaces/videos.rs @@ -7,7 +7,7 @@ pub struct Videos {} type VideosNamespace = Namespace<Videos>; impl VideosNamespace { - pub fn by_id(self, ids: Vec<&VideoId>) + pub fn by_id<S: ToString>(self, ids: &[S]) -> IterableApiRequest<PaginationContainer<Video>> { use self::by_id; by_id(self.client, ids) @@ -33,42 +33,42 @@ impl Client { } } -pub fn by_id(client: Client, ids: Vec<&VideoId>) +pub fn by_id<S: ToString>(client: Client, ids: &[S]) -> IterableApiRequest<PaginationContainer<Video>> { let client = client.inner; let url = String::from("https://") + client.domain() + &String::from("/helix/videos"); - let mut params = BTreeMap::new(); + let mut params: ParamList = BTreeMap::new(); for id in ids { - params.insert("id", id.as_ref()); + params.insert("id", id); } IterableApiRequest::new(url, params, client, Method::GET, Some(RatelimitKey::Default)) } -pub fn by_user(client: Client, user_id: &UserId) +pub fn by_user<S: ToString>(client: Client, user_id: &S) -> IterableApiRequest<PaginationContainer<Video>> { let client = client.inner; let url = String::from("https://") + client.domain() + &String::from("/helix/videos"); - let mut params = BTreeMap::new(); - params.insert("user_id", user_id.as_ref()); + let mut params: ParamList = BTreeMap::new(); + params.insert("user_id", user_id); IterableApiRequest::new(url, params, client, Method::GET, Some(RatelimitKey::Default)) } -pub fn for_game(client: Client, game_id: &GameId) +pub fn for_game<S: ToString>(client: Client, game_id: &S) -> IterableApiRequest<PaginationContainer<Video>> { let client = client.inner; let url = String::from("https://") + client.domain() + &String::from("/helix/videos"); - let mut params = BTreeMap::new(); - params.insert("game_id", game_id.as_ref()); + let mut params: ParamList = BTreeMap::new(); + params.insert("game_id", game_id); IterableApiRequest::new(url, params, client, Method::GET, Some(RatelimitKey::Default)) |