Fixes bug where updates can cause a sync loop
This commit is contained in:
@@ -3,6 +3,7 @@ use time::OffsetDateTime;
|
||||
use uuid::Uuid;
|
||||
|
||||
use super::Identifiable;
|
||||
use crate::model::message::Message;
|
||||
|
||||
pub type ConversationID = <Conversation as Identifiable>::ID;
|
||||
|
||||
@@ -24,6 +25,9 @@ pub struct Conversation {
|
||||
|
||||
#[serde(rename = "displayName")]
|
||||
pub display_name: Option<String>,
|
||||
|
||||
#[serde(rename = "lastMessage")]
|
||||
pub last_message: Option<Message>,
|
||||
}
|
||||
|
||||
impl Conversation {
|
||||
@@ -48,6 +52,7 @@ pub struct ConversationBuilder {
|
||||
last_message_preview: Option<String>,
|
||||
participant_display_names: Option<Vec<String>>,
|
||||
display_name: Option<String>,
|
||||
last_message: Option<Message>,
|
||||
}
|
||||
|
||||
impl ConversationBuilder {
|
||||
@@ -85,6 +90,11 @@ impl ConversationBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn last_message(mut self, last_message: Message) -> Self {
|
||||
self.last_message = Some(last_message);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn build(self) -> Conversation {
|
||||
Conversation {
|
||||
guid: self.guid.unwrap_or(Uuid::new_v4().to_string()),
|
||||
@@ -93,6 +103,7 @@ impl ConversationBuilder {
|
||||
last_message_preview: self.last_message_preview,
|
||||
participant_display_names: self.participant_display_names.unwrap_or_default(),
|
||||
display_name: self.display_name,
|
||||
last_message: self.last_message,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user