Reviewed-on: #7
This commit was merged in pull request #7.
This commit is contained in:
2026-06-21 22:48:09 -04:00
parent af2cb3efdc
commit 702fead8c8
8 changed files with 1464 additions and 12 deletions
+55
View File
@@ -0,0 +1,55 @@
/// Seconds to sleep after finising a task
pub const SECONDS_TO_SLEEP: u64 = 5;
pub const APP_NAME: &str = "catapult";
pub struct App {
pub api_url: String,
pub auth_url: String,
pub service_username: String,
pub service_passphrase: String,
pub twilio_config: textsender_models::config::auxiliary::TwilioConfig,
}
// TODO: Change this to non-async at some point.
// Will require changes in other libraries
pub async fn load_app() -> Result<App, std::io::Error> {
use textsender_models::envy;
let auth_url_env = envy::environment::get_env("AUTH_URL").await;
let api_url_env = envy::environment::get_env("API_URL").await;
let service_username_env = envy::environment::get_env("SERVICE_USERNAME").await;
let service_passphrase_env = envy::environment::get_env("SERVICE_PASSPHRASE").await;
let envs = vec![
auth_url_env,
api_url_env,
service_username_env,
service_passphrase_env,
];
let check_envs = |vs: &Vec<envy::EnvVar>| -> (bool, Option<String>) {
for env in vs {
if env.value.is_empty() {
return (false, Some(format!("Key {} is not provided", env.key)));
}
}
(true, None)
};
let (envs_valid, reason) = check_envs(&envs);
if envs_valid {
match textsender_models::config::auxiliary::load_config().await {
Ok(twilio_config) => Ok(App {
api_url: String::new(),
auth_url: String::new(),
service_username: String::new(),
service_passphrase: String::new(),
twilio_config: twilio_config,
}),
Err(err) => Err(err),
}
} else {
Err(std::io::Error::other(reason.unwrap()))
}
}