From dadad271b4d5924700c0be53df9185d539086a49 Mon Sep 17 00:00:00 2001 From: Paul <paulmakles@gmail.com> Date: Fri, 19 Feb 2021 14:12:21 +0000 Subject: [PATCH] Mark attachments as deleted when deleting messages. --- src/database/entities/message.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/database/entities/message.rs b/src/database/entities/message.rs index 9fbffd3..bdce178 100644 --- a/src/database/entities/message.rs +++ b/src/database/entities/message.rs @@ -201,6 +201,26 @@ impl Message { } pub async fn delete(&self) -> Result<()> { + if let Some(attachment) = &self.attachment { + get_collection("attachments") + .update_one( + doc! { + "_id": &attachment.id + }, + doc! { + "$set": { + "deleted": true + } + }, + None + ) + .await + .map_err(|_| Error::DatabaseError { + operation: "update_one", + with: "attachment", + })?; + } + get_collection("messages") .delete_one( doc! { -- GitLab