Skip to content

Commit 5a2e668

Browse files
erskingardneryukibtc
authored andcommitted
mls: update last_message_at and last_message_id when processing messages
Pull-Request: #854 Signed-off-by: Yuki Kishimoto <yukikishimoto@protonmail.com>
1 parent d60cacf commit 5a2e668

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

crates/nostr-mls/src/messages.rs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ where
134134
.ok_or(Error::GroupNotFound)?;
135135

136136
// Load stored group
137-
let group: group_types::Group = self
137+
let mut group: group_types::Group = self
138138
.get_group(mls_group_id)
139139
.map_err(|e| Error::Group(e.to_string()))?
140140
.ok_or(Error::GroupNotFound)?;
@@ -190,14 +190,21 @@ where
190190

191191
// Save message to storage
192192
self.storage()
193-
.save_message(message)
193+
.save_message(message.clone())
194194
.map_err(|e| Error::Message(e.to_string()))?;
195195

196196
// Save processed message to storage
197197
self.storage()
198198
.save_processed_message(processed_message)
199199
.map_err(|e| Error::Message(e.to_string()))?;
200200

201+
// Update last_message_at and last_message_id
202+
group.last_message_at = Some(rumor.created_at);
203+
group.last_message_id = Some(message.id);
204+
self.storage()
205+
.save_group(group)
206+
.map_err(|e| Error::Group(e.to_string()))?;
207+
201208
Ok(event)
202209
}
203210

@@ -323,7 +330,7 @@ where
323330
.try_into()
324331
.map_err(|_e| Error::Message("Failed to convert nostr group id to [u8; 32]".to_string()))?;
325332

326-
let group = self
333+
let mut group = self
327334
.storage()
328335
.find_group_by_nostr_group_id(&nostr_group_id)
329336
.map_err(|e| Error::Group(e.to_string()))?
@@ -383,6 +390,13 @@ where
383390
.save_processed_message(processed_message.clone())
384391
.map_err(|e| Error::Message(e.to_string()))?;
385392

393+
// Update last_message_at and last_message_id
394+
group.last_message_at = Some(rumor.created_at);
395+
group.last_message_id = Some(message.id);
396+
self.storage()
397+
.save_group(group)
398+
.map_err(|e| Error::Group(e.to_string()))?;
399+
386400
tracing::debug!(target: "nostr_mls::messages::process_message", "Processed message: {:?}", processed_message);
387401
tracing::debug!(target: "nostr_mls::messages::process_message", "Message: {:?}", message);
388402
Ok(Some(message))

0 commit comments

Comments
 (0)