@@ -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