Send EOSE as the last relay message

This commit is contained in:
Tony Klink 2024-01-25 22:09:46 -06:00
parent 2c787998c2
commit ecb49bf88a
Signed by: klink
GPG key ID: 85175567C4D19231

View file

@ -1257,10 +1257,17 @@ impl Noose for NostrSqlite {
) -> Result<Vec<nostr::RelayMessage>, Error> { ) -> Result<Vec<nostr::RelayMessage>, Error> {
match self.query(subscription.filters, Order::Desc).await { match self.query(subscription.filters, Order::Desc).await {
Ok(events) => { Ok(events) => {
let relay_messages = events
let relay_messages: Vec<RelayMessage> = events
.into_iter() .into_iter()
.map(|event| nostr::RelayMessage::event(subscription.id.clone(), event)) .map(|event| nostr::RelayMessage::event(subscription.id.clone(), event))
.collect(); .collect();
if relay_messages.is_empty() {
let eose = RelayMessage::eose(subscription.id.clone());
return Ok(vec![eose]);
}
Ok(relay_messages) Ok(relay_messages)
} }
Err(err) => Err(Error::bad_request(err.to_string())), Err(err) => Err(Error::bad_request(err.to_string())),