use super::types::Config;
pub const ENV_BEARER_TOKEN: &str = "APIBRASIL_BEARER_TOKEN";
pub const ENV_DEVICE_TOKEN: &str = "APIBRASIL_DEVICE_TOKEN";
pub const ENV_SECRET_KEY: &str = "APIBRASIL_SECRET_KEY";
pub const ENV_BASE_URL: &str = "APIBRASIL_BASE_URL";
pub const ENV_VARS: &[&str] = &[
ENV_BEARER_TOKEN,
ENV_DEVICE_TOKEN,
ENV_SECRET_KEY,
ENV_BASE_URL,
];
impl Config {
pub fn from_env() -> Self {
Self {
bearer_token: var(ENV_BEARER_TOKEN),
device_token: var(ENV_DEVICE_TOKEN),
secret_key: var(ENV_SECRET_KEY),
base_url: var(ENV_BASE_URL),
..Default::default()
}
}
}
fn var(name: &str) -> Option<String> {
match std::env::var(name) {
Ok(value) if !value.is_empty() => Some(value),
_ => None,
}
}