diff options
author | Bernd Schoolmann <mail@quexten.com> | 2023-04-27 02:38:29 +0200 |
---|---|---|
committer | Bernd Schoolmann <mail@quexten.com> | 2023-04-27 02:38:29 +0200 |
commit | 66cf6aea2d2fc355543470dab762211d9c8ad306 (patch) | |
tree | 19174ed26ead9ca765dd619dc8654dd399b009c9 /src/bin/rbw-agent/actions.rs | |
parent | d6bbc46089b519eb82ae009bd48fa6d449f07941 (diff) | |
download | rbw-66cf6aea2d2fc355543470dab762211d9c8ad306.tar.gz rbw-66cf6aea2d2fc355543470dab762211d9c8ad306.zip |
Cargo format and reconnect websocket on sync
Diffstat (limited to 'src/bin/rbw-agent/actions.rs')
-rw-r--r-- | src/bin/rbw-agent/actions.rs | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/src/bin/rbw-agent/actions.rs b/src/bin/rbw-agent/actions.rs index f5b9dc0..2f34c6b 100644 --- a/src/bin/rbw-agent/actions.rs +++ b/src/bin/rbw-agent/actions.rs @@ -212,7 +212,6 @@ pub async fn login( eprintln!("failed to subscribe to notifications: {}", e) } - respond_ack(sock).await?; Ok(()) @@ -664,24 +663,39 @@ async fn config_pinentry() -> anyhow::Result<String> { Ok(config.pinentry) } -pub async fn subscribe_to_notifications(state: std::sync::Arc<tokio::sync::RwLock<crate::agent::State>>) -> anyhow::Result<()> { +pub async fn subscribe_to_notifications( + state: std::sync::Arc<tokio::sync::RwLock<crate::agent::State>>, +) -> anyhow::Result<()> { // access token might be out of date, so we do a sync to refresh it sync(None).await?; - let config = rbw::config::Config::load_async().await.context("Config is missing")?; + let config = rbw::config::Config::load_async() + .await + .context("Config is missing")?; let email = config.email.clone().context("Config is missing email")?; - let db = rbw::db::Db::load_async(&config.server_name().as_str(), &email).await?; - let access_token = db.access_token.context("Error getting access token")?; - - let mut websocket_url = config.base_url.clone().expect("config is missing base url").replace("https://", "wss://") + "/notifications/hub?access_token="; + let db = rbw::db::Db::load_async(&config.server_name().as_str(), &email) + .await?; + let access_token = + db.access_token.context("Error getting access token")?; + + let mut websocket_url = config + .base_url + .clone() + .expect("config is missing base url") + .replace("https://", "wss://") + + "/notifications/hub?access_token="; websocket_url = websocket_url + &access_token; let mut state = state.write().await; - let err = state.notifications_handler.connect(websocket_url).await.err(); - + let err = state + .notifications_handler + .connect(websocket_url) + .await + .err(); + if let Some(err) = err { return Err(anyhow::anyhow!(err.to_string())); } else { Ok(()) } -}
\ No newline at end of file +} |