Refactoring #15
+17
-11
@@ -20,13 +20,13 @@ pub fn load_app() -> Result<App, std::io::Error> {
|
||||
let service_passphrase_env = envy::environment::get_env("SERVICE_PASSPHRASE");
|
||||
|
||||
let envs = vec![
|
||||
api_url_env,
|
||||
auth_url_env,
|
||||
service_username_env,
|
||||
service_passphrase_env,
|
||||
&api_url_env,
|
||||
&auth_url_env,
|
||||
&service_username_env,
|
||||
&service_passphrase_env,
|
||||
];
|
||||
|
||||
let check_envs = |vs: &Vec<envy::EnvVar>| -> (bool, Option<String>) {
|
||||
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)));
|
||||
@@ -36,19 +36,25 @@ pub fn load_app() -> Result<App, std::io::Error> {
|
||||
};
|
||||
|
||||
let (envs_valid, reason) = check_envs(&envs);
|
||||
|
||||
if envs_valid {
|
||||
let auth_url: String = auth_url_env.value;
|
||||
let api_url: String = api_url_env.value;
|
||||
let service_username: String = service_username_env.value;
|
||||
let service_passphrase: String = service_passphrase_env.value;
|
||||
match textsender_models::config::auxiliary::load_config() {
|
||||
Ok(twilio_config) => Ok(App {
|
||||
api_url: envs[0].value.clone(),
|
||||
auth_url: envs[1].value.clone(),
|
||||
service_username: envs[2].value.clone(),
|
||||
service_passphrase: envs[3].value.clone(),
|
||||
api_url,
|
||||
auth_url,
|
||||
service_username,
|
||||
service_passphrase,
|
||||
twilio_config,
|
||||
}),
|
||||
Err(err) => Err(err),
|
||||
}
|
||||
} else {
|
||||
Err(std::io::Error::other(reason.unwrap()))
|
||||
match reason {
|
||||
Some(reason) => Err(std::io::Error::other(reason)),
|
||||
None => Err(std::io::Error::other("No reason found")),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user