summaryrefslogtreecommitdiff
path: root/src/conversation/app.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/conversation/app.rs')
-rw-r--r--src/conversation/app.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/conversation/app.rs b/src/conversation/app.rs
index 30baf77..5e07292 100644
--- a/src/conversation/app.rs
+++ b/src/conversation/app.rs
@@ -86,18 +86,21 @@ impl<'a> Conversations<'a> {
.not_found(|| DeleteError::NotFound(conversation.clone()))?;
let messages = tx.messages().live(&conversation).await?;
+ let deleted_at = tx.sequence().next(deleted_at).await?;
+
let has_messages = messages
.iter()
- .map(message::History::as_snapshot)
+ .map(|message| message.as_of(deleted_at))
.any(|message| message.is_some());
if has_messages {
return Err(DeleteError::NotEmpty(conversation.id().clone()));
}
- let deleted = tx.sequence().next(deleted_at).await?;
- let conversation = conversation.delete(deleted)?;
+ let conversation = conversation.delete(deleted_at)?;
- let events = conversation.events().filter(Sequence::start_from(deleted));
+ let events = conversation
+ .events()
+ .filter(Sequence::start_from(deleted_at));
tx.conversations().record_events(events.clone()).await?;
tx.commit().await?;