heroku_rs/framework/
auth.rs1use reqwest::blocking::RequestBuilder;
2
3#[derive(Debug)]
5pub enum Credentials {
6 UserAuthToken { token: String },
7}
8
9impl Credentials {
10 pub fn headers(&self) -> Vec<(&'static str, String)> {
11 match self {
12 Self::UserAuthToken { token } => vec![("Authorization", format!("Bearer {}", token))],
13 }
14 }
15}
16
17pub trait AuthClient {
18 fn auth(self, credentials: &Credentials) -> Self;
19}
20
21impl AuthClient for RequestBuilder {
22 fn auth(mut self, credentials: &Credentials) -> Self {
23 for (k, v) in credentials.headers() {
24 self = self.header(k, v);
25 }
26 self
27 }
28}