diff --git a/crates/core/database/src/models/files/ops/reference.rs b/crates/core/database/src/models/files/ops/reference.rs index 455e6476..b9b4f735 100644 --- a/crates/core/database/src/models/files/ops/reference.rs +++ b/crates/core/database/src/models/files/ops/reference.rs @@ -22,15 +22,25 @@ impl AbstractAttachments for ReferenceDb { async fn find_and_use_attachment( &self, id: &str, - _tag: &str, - _parent_type: &str, - _parent_id: &str, + tag: &str, + parent_type: &str, + parent_id: &str, ) -> Result { let mut files = self.files.lock().await; if let Some(file) = files.get_mut(id) { - // TODO: check tag - // TODO: set parent ID - Ok(file.clone()) + if file.tag == tag { + match parent_type { + "message" => file.message_id = Some(parent_id.to_owned()), + "user" => file.user_id = Some(parent_id.to_owned()), + "object" => file.object_id = Some(parent_id.to_owned()), + "server" => file.server_id = Some(parent_id.to_owned()), + _ => unreachable!(), + } + + Ok(file.clone()) + } else { + Err(create_error!(NotFound)) + } } else { Err(create_error!(NotFound)) }