From 47a5075b6385a8c0d28bae04c5862d93d0a6ffa6 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 1 Nov 2023 00:00:00 +0000 Subject: refactor(client) simply connect flow connect immediately before requesting or sending events no longer waiting for all relays to connect before interacting with any of them --- src/client.rs | 13 ++++++------- src/sub_commands/login.rs | 1 - 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/client.rs b/src/client.rs index 929f19a..84bfb11 100644 --- a/src/client.rs +++ b/src/client.rs @@ -27,7 +27,7 @@ pub struct Client { pub trait Connect { fn default() -> Self; fn new(opts: Params) -> Self; - async fn connect(&self) -> Result<()>; + async fn set_keys(&mut self, keys: &nostr::Keys); async fn disconnect(&self) -> Result<()>; fn get_fallback_relays(&self) -> &Vec; async fn send_event_to(&self, url: &str, event: nostr::event::Event) -> Result; @@ -55,12 +55,9 @@ impl Connect for Client { fallback_relays: opts.fallback_relays, } } - async fn connect(&self) -> Result<()> { - for relay in &self.fallback_relays { - self.client.add_relay(relay.as_str(), None).await?; - } - self.client.connect().await; - Ok(()) + + async fn set_keys(&mut self, keys: &nostr::Keys) { + self.client.set_keys(keys).await; } async fn disconnect(&self) -> Result<()> { @@ -73,6 +70,8 @@ impl Connect for Client { } async fn send_event_to(&self, url: &str, event: Event) -> Result { + self.client.add_relay(url, None).await?; + self.client.connect_relay(url).await?; Ok(self.client.send_event_to(url, event).await?) } diff --git a/src/sub_commands/login.rs b/src/sub_commands/login.rs index b93e9bc..43ce480 100644 --- a/src/sub_commands/login.rs +++ b/src/sub_commands/login.rs @@ -24,7 +24,6 @@ pub async fn launch(args: &Cli, command_args: &SubCommandArgs) -> Result<()> { #[cfg(test)] let client = ::default(); - client.connect().await?; login::launch(&args.nsec, &args.password, Some(&client)).await?; client.disconnect().await?; Ok(()) -- cgit v1.2.3