Fixes bug where updates can cause a sync loop
This commit is contained in:
@@ -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(())
|
||||
|
||||
Reference in New Issue
Block a user