blob: 8ad7956104dc6cbe5583051716d9e5f99d8c65ec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
use futures::future::Future;
use std::collections::BTreeMap;
use super::super::models::Credentials;
use super::super::Client;
const ID_DOMAIN: &'static str = "id.twitch.tv";
use super::super::Namespace;
pub struct Auth {}
type AuthNamespace = Namespace<Auth>;
impl AuthNamespace {
pub fn client_credentials(self, secret: &str)
-> ApiRequest<Credentials> {
use self::client_credentials;
client_credentials(self.client, secret)
}
}
impl Client {
pub fn auth(&self) -> AuthNamespace {
AuthNamespace::new(self)
}
}
use super::super::ApiRequest;
use reqwest::Method;
//TODO: Implement scopes
pub fn client_credentials(client: Client, secret: &str)
-> ApiRequest<Credentials> {
let url =
String::from("https://") +
ID_DOMAIN + "/oauth2/token";
let mut params = BTreeMap::new();
params.insert("client_id".to_owned(), client.id().to_owned());
params.insert("client_secret".to_owned(), secret.to_owned());
params.insert("grant_type".to_owned(), "client_credentials".to_owned());
params.insert("scope".to_owned(), "".to_owned());
ApiRequest::new(url, params, client, Method::POST)
}
|