aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/rbw-agent/actions.rs
diff options
context:
space:
mode:
authorBernd Schoolmann <mail@quexten.com>2023-04-27 02:38:29 +0200
committerBernd Schoolmann <mail@quexten.com>2023-04-27 02:38:29 +0200
commit66cf6aea2d2fc355543470dab762211d9c8ad306 (patch)
tree19174ed26ead9ca765dd619dc8654dd399b009c9 /src/bin/rbw-agent/actions.rs
parentd6bbc46089b519eb82ae009bd48fa6d449f07941 (diff)
downloadrbw-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.rs34
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
+}