diff options
Diffstat (limited to 'test_utils/src/relay.rs')
| -rw-r--r-- | test_utils/src/relay.rs | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/test_utils/src/relay.rs b/test_utils/src/relay.rs index 4ef34e6..50f6337 100644 --- a/test_utils/src/relay.rs +++ b/test_utils/src/relay.rs | |||
| @@ -91,6 +91,27 @@ impl<'a> Relay<'a> { | |||
| 91 | self.respond_eose(client_id, subscription_id.clone()) | 91 | self.respond_eose(client_id, subscription_id.clone()) |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | /// send collected events, filtered by filters, and eose | ||
| 95 | pub fn respond_standard_req( | ||
| 96 | &self, | ||
| 97 | client_id: u64, | ||
| 98 | subscription_id: &nostr::SubscriptionId, | ||
| 99 | filters: &[nostr::Filter], | ||
| 100 | ) -> Result<bool> { | ||
| 101 | // let t: Vec<nostr::Kind> = self.events.iter().map(|e| e.kind).collect(); | ||
| 102 | // .filter(|e| filters.iter().any(|filter| filter.match_event(e))) | ||
| 103 | // println!("letsgo{:?}", t); | ||
| 104 | self.respond_events( | ||
| 105 | client_id, | ||
| 106 | subscription_id, | ||
| 107 | &self | ||
| 108 | .events | ||
| 109 | .iter() | ||
| 110 | .filter(|e| filters.iter().any(|filter| filter.match_event(e))) | ||
| 111 | .cloned() | ||
| 112 | .collect(), | ||
| 113 | ) | ||
| 114 | } | ||
| 94 | /// listen, collect events and responds with event_listener to events or | 115 | /// listen, collect events and responds with event_listener to events or |
| 95 | /// Ok(eventid) if event_listner is None | 116 | /// Ok(eventid) if event_listner is None |
| 96 | pub async fn listen_until_close(&mut self) -> Result<()> { | 117 | pub async fn listen_until_close(&mut self) -> Result<()> { |
| @@ -108,6 +129,8 @@ impl<'a> Relay<'a> { | |||
| 108 | // break; | 129 | // break; |
| 109 | } | 130 | } |
| 110 | simple_websockets::Event::Message(client_id, message) => { | 131 | simple_websockets::Event::Message(client_id, message) => { |
| 132 | // println!("bla{:?}", &message); | ||
| 133 | |||
| 111 | println!( | 134 | println!( |
| 112 | "{} Received a message from client #{}: {:?}", | 135 | "{} Received a message from client #{}: {:?}", |
| 113 | self.port, client_id, message | 136 | self.port, client_id, message |
| @@ -118,8 +141,15 @@ impl<'a> Relay<'a> { | |||
| 118 | break; | 141 | break; |
| 119 | } | 142 | } |
| 120 | } | 143 | } |
| 144 | // println!("{:?}", &message); | ||
| 121 | if let Ok(event) = get_nevent(&message) { | 145 | if let Ok(event) = get_nevent(&message) { |
| 146 | // println!("{:?}", &event); | ||
| 147 | // let t: Vec<nostr::Kind> = self.events.iter().map(|e| e.kind).collect(); | ||
| 148 | // println!("before{:?}", t); | ||
| 122 | self.events.push(event.clone()); | 149 | self.events.push(event.clone()); |
| 150 | // let t: Vec<nostr::Kind> = self.events.iter().map(|e| e.kind).collect(); | ||
| 151 | // println!("after{:?}", t); | ||
| 152 | |||
| 123 | if let Some(listner) = self.event_listener { | 153 | if let Some(listner) = self.event_listener { |
| 124 | listner(self, client_id, event)?; | 154 | listner(self, client_id, event)?; |
| 125 | } else { | 155 | } else { |
| @@ -132,7 +162,8 @@ impl<'a> Relay<'a> { | |||
| 132 | if let Some(listner) = self.req_listener { | 162 | if let Some(listner) = self.req_listener { |
| 133 | listner(self, client_id, subscription_id, filters)?; | 163 | listner(self, client_id, subscription_id, filters)?; |
| 134 | } else { | 164 | } else { |
| 135 | self.respond_eose(client_id, subscription_id)?; | 165 | self.respond_standard_req(client_id, &subscription_id, &filters)?; |
| 166 | // self.respond_eose(client_id, subscription_id)?; | ||
| 136 | } | 167 | } |
| 137 | // respond with events | 168 | // respond with events |
| 138 | // respond with EOSE | 169 | // respond with EOSE |