diff --git a/src/database/entities/message.rs b/src/database/entities/message.rs index 9fbffd3113bf388db167d5a4505722ff6102de11..bdce178192b81fd285a5eb543ce2374fcee12ee2 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! {