From 29a093993ce7d0210ac39ceb1a25acc9350492e7 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Fri, 19 Jul 2024 22:10:23 +0100 Subject: feat: save created events to cache as soon as they are successfully sent to at least one relay --- src/client.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'src/client.rs') diff --git a/src/client.rs b/src/client.rs index 3b18ad8..880cb6b 100644 --- a/src/client.rs +++ b/src/client.rs @@ -62,7 +62,12 @@ pub trait Connect { fn get_fallback_relays(&self) -> &Vec; fn get_more_fallback_relays(&self) -> &Vec; fn get_blaster_relays(&self) -> &Vec; - async fn send_event_to(&self, url: &str, event: nostr::event::Event) -> Result; + async fn send_event_to( + &self, + git_repo_path: &Path, + url: &str, + event: nostr::event::Event, + ) -> Result; async fn get_events( &self, relays: Vec, @@ -189,11 +194,21 @@ impl Connect for Client { &self.blaster_relays } - async fn send_event_to(&self, url: &str, event: Event) -> Result { + async fn send_event_to( + &self, + git_repo_path: &Path, + url: &str, + event: Event, + ) -> Result { self.client.add_relay(url).await?; #[allow(clippy::large_futures)] self.client.connect_relay(url).await?; - Ok(self.client.send_event_to(vec![url], event).await?) + let res = self.client.send_event_to(vec![url], event.clone()).await?; + save_event_in_cache(git_repo_path, &event).await?; + if event.kind().eq(&Kind::Custom(REPO_REF_KIND)) { + save_event_in_global_cache(git_repo_path, &event).await?; + } + Ok(res) } async fn get_events( -- cgit v1.2.3