#[derive(Debug, Clone)]
pub enum Auth {
ApiKey(String),
BearerToken(String),
SdkToken(String),
}
impl Auth {
pub fn apply_to_request(&self, request: ureq::Request) -> ureq::Request {
match self {
Auth::ApiKey(key) => request.set("X-API-KEY", key),
Auth::BearerToken(token) => request.set("Authorization", &format!("Bearer {}", token)),
Auth::SdkToken(token) => request.set("X-SDK-TOKEN", token),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_auth_apply_to_request() {
let auth = Auth::ApiKey("test_key".to_string());
let request = ureq::get("http://example.com");
let _request = auth.apply_to_request(request);
let auth = Auth::BearerToken("test_token".to_string());
let request = ureq::get("http://example.com");
let _request = auth.apply_to_request(request);
let auth = Auth::SdkToken("test_sdk_token".to_string());
let request = ureq::get("http://example.com");
let _request = auth.apply_to_request(request);
}
}