Private
Public Access
1
0

Fixes bug where updates can cause a sync loop

This commit is contained in:
2025-05-04 00:15:13 -07:00
parent 8e87c2bce2
commit 819b852c1f
3 changed files with 46 additions and 13 deletions

View File

@@ -131,7 +131,7 @@ impl<'a> Repository<'a> {
.execute(self.connection)?;
// Update conversation date
self.update_conversation_metadata(conversation_guid, &db_message)?;
self.update_conversation_metadata(conversation_guid)?;
Ok(())
}
@@ -181,7 +181,7 @@ impl<'a> Repository<'a> {
.execute(self.connection)?;
// Update conversation date
self.update_conversation_metadata(conversation_guid, &db_messages.last().unwrap())?;
self.update_conversation_metadata(conversation_guid)?;
Ok(())
}
@@ -243,13 +243,15 @@ impl<'a> Repository<'a> {
Ok(())
}
fn update_conversation_metadata(&mut self, conversation_guid: &str, last_message: &MessageRecord) -> Result<()> {
fn update_conversation_metadata(&mut self, conversation_guid: &str) -> Result<()> {
let conversation = self.get_conversation_by_guid(conversation_guid)?;
if let Some(mut conversation) = conversation {
log::debug!("Updating conversation metadata: {} message: {:?}", conversation_guid, last_message);
conversation.date = last_message.date;
conversation.last_message_preview = Some(last_message.text.clone());
self.insert_conversation(conversation)?;
if let Some(last_message) = self.get_last_message_for_conversation(conversation_guid)? {
log::debug!("Updating conversation metadata: {} message: {:?}", conversation_guid, last_message);
conversation.date = last_message.date;
conversation.last_message_preview = Some(last_message.text.clone());
self.insert_conversation(conversation)?;
}
}
Ok(())