cloudflare/framework/
auth.rs

1use reqwest::RequestBuilder;
2
3#[derive(Debug)]
4pub enum Credentials {
5    UserAuthKey { email: String, key: String },
6    UserAuthToken { token: String },
7    Service { key: String },
8}
9
10pub trait AuthClient {
11    fn auth(self, credentials: &Credentials) -> RequestBuilder;
12}
13
14impl AuthClient for RequestBuilder {
15    fn auth(self, credentials: &Credentials) -> RequestBuilder {
16        match credentials {
17            Credentials::UserAuthKey { email, key } => self
18                .header("X-Auth-Email", email.as_str())
19                .header("X-Auth-Key", key.clone()),
20            Credentials::UserAuthToken { token } => {
21                self.header("Authorization", &format!("Bearer {}", token.clone()))
22            }
23            Credentials::Service { key } => self.header("X-Auth-User-Service-Key", key.as_str()),
24        }
25    }
26}