diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-04-18 03:45:49 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-04-18 03:45:49 -0400 |
commit | f2e12534b876e73a0c7c4593acb23ac200529309 (patch) | |
tree | 3348552733e4fa812d513468ce0f172a27a466ef /src/bin/rbw-agent | |
parent | f1d63c8bfb76b218822ee417e98a9015877ab528 (diff) | |
download | rbw-f2e12534b876e73a0c7c4593acb23ac200529309.tar.gz rbw-f2e12534b876e73a0c7c4593acb23ac200529309.zip |
refactor
Diffstat (limited to 'src/bin/rbw-agent')
-rw-r--r-- | src/bin/rbw-agent/actions.rs | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/src/bin/rbw-agent/actions.rs b/src/bin/rbw-agent/actions.rs index 9559f73..75c1c25 100644 --- a/src/bin/rbw-agent/actions.rs +++ b/src/bin/rbw-agent/actions.rs @@ -132,28 +132,18 @@ pub async fn sync(sock: &mut crate::sock::Sock) -> anyhow::Result<()> { } else { return Err(anyhow::anyhow!("failed to find access token in db")); }; - let res = rbw::actions::sync(&access_token).await; - let res = if let Err(e) = &res { - if let rbw::error::Error::RequestUnauthorized = e { - if let Some(refresh_token) = &db.refresh_token { - let access_token = - rbw::actions::exchange_refresh_token_async(refresh_token) - .await?; - db.access_token = Some(access_token.clone()); - rbw::actions::sync(&access_token).await - } else { - return Err(anyhow::anyhow!( - "failed to find refresh token in db" - )); - } - } else { - res - } + let refresh_token = if let Some(refresh_token) = &db.refresh_token { + refresh_token.clone() } else { - res + return Err(anyhow::anyhow!("failed to find refresh token in db")); }; - let (protected_key, ciphers) = - res.context("failed to sync database from server")?; + let (access_token, protected_key, ciphers) = + rbw::actions::sync(&access_token, &refresh_token) + .await + .context("failed to sync database from server")?; + if let Some(access_token) = access_token { + db.access_token = Some(access_token); + } db.protected_key = Some(protected_key); db.ciphers = ciphers; db.save_async(&email) |