Adding app module
This commit is contained in:
+55
@@ -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()))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1,2 @@
|
|||||||
|
pub mod app;
|
||||||
pub mod version;
|
pub mod version;
|
||||||
|
|||||||
Reference in New Issue
Block a user