From c0abcf3daa535e259b31594a8a1b93a1e55f2fd7 Mon Sep 17 00:00:00 2001 From: holger krekel Date: Wed, 13 Apr 2022 19:50:04 +0200 Subject: [PATCH] don't use literal "configured_" strings all over the place but have clear APIs for loading/saving account login params --- src/configure.rs | 4 ++-- src/contact.rs | 2 +- src/context.rs | 4 ++-- src/imap.rs | 2 +- src/login_param.rs | 20 +++++++++++++++----- src/smtp.rs | 2 +- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/configure.rs b/src/configure.rs index 97ed05884..886bb09ef 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -85,7 +85,7 @@ impl Context { async fn inner_configure(&self) -> Result<()> { info!(self, "Configure ..."); - let mut param = LoginParam::from_database(self, "").await?; + let mut param = LoginParam::load_candidate_params(self).await?; let success = configure(self, &mut param).await; self.set_config(Config::NotifyAboutWrongPw, None).await?; @@ -454,7 +454,7 @@ async fn configure(ctx: &Context, param: &mut LoginParam) -> Result<()> { progress!(ctx, 910); // the trailing underscore is correct - param.save_to_database(ctx, "configured_").await?; + param.save_as_configured_params(ctx).await?; ctx.set_config(Config::ConfiguredTimestamp, Some(&time().to_string())) .await?; diff --git a/src/contact.rs b/src/contact.rs index 9f10db254..cdcf4363e 100644 --- a/src/contact.rs +++ b/src/contact.rs @@ -870,7 +870,7 @@ impl Contact { let mut ret = String::new(); if let Ok(contact) = Contact::load_from_db(context, contact_id).await { - let loginparam = LoginParam::from_database(context, "configured_").await?; + let loginparam = LoginParam::load_configured_params(context).await?; let peerstate = Peerstate::from_addr(context, &contact.addr).await?; if let Some(peerstate) = peerstate.filter(|peerstate| { diff --git a/src/context.rs b/src/context.rs index 05d810766..be271c41e 100644 --- a/src/context.rs +++ b/src/context.rs @@ -311,8 +311,8 @@ impl Context { pub async fn get_info(&self) -> Result> { let unset = "0"; - let l = LoginParam::from_database(self, "").await?; - let l2 = LoginParam::from_database(self, "configured_").await?; + let l = LoginParam::load_candidate_params(self).await?; + let l2 = LoginParam::load_configured_params(self).await?; let displayname = self.get_config(Config::Displayname).await?; let chats = get_chat_cnt(self).await? as usize; let unblocked_msgs = message::get_unblocked_msg_cnt(self).await as usize; diff --git a/src/imap.rs b/src/imap.rs index 6e2f27a3b..cc64914f3 100644 --- a/src/imap.rs +++ b/src/imap.rs @@ -224,7 +224,7 @@ impl Imap { bail!("IMAP Connect without configured params"); } - let param = LoginParam::from_database(context, "configured_").await?; + let param = LoginParam::load_configured_params(context).await?; // the trailing underscore is correct let imap = Self::new( diff --git a/src/login_param.rs b/src/login_param.rs index a92a6f2b7..5b1d78e88 100644 --- a/src/login_param.rs +++ b/src/login_param.rs @@ -139,8 +139,18 @@ pub struct LoginParam { } impl LoginParam { + /// Load entered (candidate) account settings + pub async fn load_candidate_params(context: &Context) -> Result { + LoginParam::from_database(context, "").await + } + + /// Load configured (working) account settings + pub async fn load_configured_params(context: &Context) -> Result { + LoginParam::from_database(context, "configured_").await + } + /// Read the login parameters from the database. - pub async fn from_database(context: &Context, prefix: impl AsRef) -> Result { + async fn from_database(context: &Context, prefix: impl AsRef) -> Result { let prefix = prefix.as_ref(); let sql = &context.sql; @@ -242,8 +252,8 @@ impl LoginParam { } /// Save this loginparam to the database. - pub async fn save_to_database(&self, context: &Context, prefix: impl AsRef) -> Result<()> { - let prefix = prefix.as_ref(); + pub async fn save_as_configured_params(&self, context: &Context) -> Result<()> { + let prefix = "configured_"; let sql = &context.sql; let key = format!("{}addr", prefix); @@ -438,8 +448,8 @@ mod tests { socks5_config: None, }; - param.save_to_database(&t, "foobar_").await?; - let loaded = LoginParam::from_database(&t, "foobar_").await?; + param.save_as_configured_params(&t).await?; + let loaded = LoginParam::load_configured_params(&t).await?; assert_eq!(param, loaded); Ok(()) diff --git a/src/smtp.rs b/src/smtp.rs index b1bbeb679..e4fc19df8 100644 --- a/src/smtp.rs +++ b/src/smtp.rs @@ -87,7 +87,7 @@ impl Smtp { } self.connectivity.set_connecting(context).await; - let lp = LoginParam::from_database(context, "configured_").await?; + let lp = LoginParam::load_configured_params(context).await?; self.connect( context, &lp.smtp,