use anyhow::Result;
use crate::datadog::auth;
use crate::datadog::client::DatadogClient;
pub fn create_client() -> Result<(DatadogClient, String)> {
create_client_from(auth::load_credentials()?)
}
pub fn create_client_from(
credentials: auth::DatadogCredentials,
) -> Result<(DatadogClient, String)> {
let site = credentials.site.clone();
let client = DatadogClient::from_credentials(&credentials)?;
Ok((client, site))
}
#[cfg(test)]
#[allow(clippy::unwrap_used)]
mod tests {
use super::*;
use crate::datadog::auth::DatadogCredentials;
#[test]
fn create_client_from_propagates_site() {
let creds = DatadogCredentials {
api_key: "api".to_string(),
app_key: "app".to_string(),
site: "us5.datadoghq.com".to_string(),
};
let (_client, site) = create_client_from(creds).unwrap();
assert_eq!(site, "us5.datadoghq.com");
}
}