diff options
author | Bernd Schoolmann <mail@quexten.com> | 2023-04-08 02:55:02 +0200 |
---|---|---|
committer | Bernd Schoolmann <mail@quexten.com> | 2023-04-08 02:56:17 +0200 |
commit | d6339933d54974952721659c3de2b2871a086c1a (patch) | |
tree | f89610646bb7819573e8b3e60f2ed52815c7c43c /src/bin/rbw-agent/agent.rs | |
parent | 8aa7e36a4f2746b314b0a582f3c59cc8b6b03ca2 (diff) | |
download | rbw-d6339933d54974952721659c3de2b2871a086c1a.tar.gz rbw-d6339933d54974952721659c3de2b2871a086c1a.zip |
Implement basic websocket support
Diffstat (limited to 'src/bin/rbw-agent/agent.rs')
-rw-r--r-- | src/bin/rbw-agent/agent.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/bin/rbw-agent/agent.rs b/src/bin/rbw-agent/agent.rs index 7dcab16..9523c78 100644 --- a/src/bin/rbw-agent/agent.rs +++ b/src/bin/rbw-agent/agent.rs @@ -73,6 +73,17 @@ impl Agent { self, listener: tokio::net::UnixListener, ) -> anyhow::Result<()> { + tokio::spawn(async move { + let config = rbw::config::Config::load_async().await.expect("Error loading config"); + let mut websocket_url = config.base_url.clone().expect("Config is missing base url").replace("https://", "wss://") + "/notifications/hub?access_token="; + if let Some(email) = &config.email { + let db = rbw::db::Db::load_async(&config.server_name().as_str(), email).await.expect("Error loading db"); + let access_token = db.access_token.expect("Error getting access token"); + websocket_url = websocket_url + &access_token; + crate::notifications::subscribe_to_notifications(websocket_url).await; + } + }); + enum Event { Request(std::io::Result<tokio::net::UnixStream>), Timeout(()), |