aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/rbw-agent/agent.rs
diff options
context:
space:
mode:
authorBernd Schoolmann <mail@quexten.com>2023-04-08 02:55:02 +0200
committerBernd Schoolmann <mail@quexten.com>2023-04-08 02:56:17 +0200
commitd6339933d54974952721659c3de2b2871a086c1a (patch)
treef89610646bb7819573e8b3e60f2ed52815c7c43c /src/bin/rbw-agent/agent.rs
parent8aa7e36a4f2746b314b0a582f3c59cc8b6b03ca2 (diff)
downloadrbw-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.rs11
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(()),