diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2024-07-19 22:10:23 +0100 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2024-07-19 22:10:23 +0100 |
| commit | 29a093993ce7d0210ac39ceb1a25acc9350492e7 (patch) | |
| tree | b8ae2a13b975b051bda7e9461f1b8fddd986b3ca /src/client.rs | |
| parent | dde029b4f5988cfa830ebc36bee0f35c93bd2544 (diff) | |
feat: save created events to cache
as soon as they are successfully sent to at least one relay
Diffstat (limited to 'src/client.rs')
| -rw-r--r-- | src/client.rs | 21 |
1 files changed, 18 insertions, 3 deletions
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 { | |||
| 62 | fn get_fallback_relays(&self) -> &Vec<String>; | 62 | fn get_fallback_relays(&self) -> &Vec<String>; |
| 63 | fn get_more_fallback_relays(&self) -> &Vec<String>; | 63 | fn get_more_fallback_relays(&self) -> &Vec<String>; |
| 64 | fn get_blaster_relays(&self) -> &Vec<String>; | 64 | fn get_blaster_relays(&self) -> &Vec<String>; |
| 65 | async fn send_event_to(&self, url: &str, event: nostr::event::Event) -> Result<nostr::EventId>; | 65 | async fn send_event_to( |
| 66 | &self, | ||
| 67 | git_repo_path: &Path, | ||
| 68 | url: &str, | ||
| 69 | event: nostr::event::Event, | ||
| 70 | ) -> Result<nostr::EventId>; | ||
| 66 | async fn get_events( | 71 | async fn get_events( |
| 67 | &self, | 72 | &self, |
| 68 | relays: Vec<String>, | 73 | relays: Vec<String>, |
| @@ -189,11 +194,21 @@ impl Connect for Client { | |||
| 189 | &self.blaster_relays | 194 | &self.blaster_relays |
| 190 | } | 195 | } |
| 191 | 196 | ||
| 192 | async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> { | 197 | async fn send_event_to( |
| 198 | &self, | ||
| 199 | git_repo_path: &Path, | ||
| 200 | url: &str, | ||
| 201 | event: Event, | ||
| 202 | ) -> Result<nostr::EventId> { | ||
| 193 | self.client.add_relay(url).await?; | 203 | self.client.add_relay(url).await?; |
| 194 | #[allow(clippy::large_futures)] | 204 | #[allow(clippy::large_futures)] |
| 195 | self.client.connect_relay(url).await?; | 205 | self.client.connect_relay(url).await?; |
| 196 | Ok(self.client.send_event_to(vec![url], event).await?) | 206 | let res = self.client.send_event_to(vec![url], event.clone()).await?; |
| 207 | save_event_in_cache(git_repo_path, &event).await?; | ||
| 208 | if event.kind().eq(&Kind::Custom(REPO_REF_KIND)) { | ||
| 209 | save_event_in_global_cache(git_repo_path, &event).await?; | ||
| 210 | } | ||
| 211 | Ok(res) | ||
| 197 | } | 212 | } |
| 198 | 213 | ||
| 199 | async fn get_events( | 214 | async fn get_events( |