diff --git a/deltachat-jsonrpc/src/api/mod.rs b/deltachat-jsonrpc/src/api/mod.rs index fca691f29..1238d7078 100644 --- a/deltachat-jsonrpc/src/api/mod.rs +++ b/deltachat-jsonrpc/src/api/mod.rs @@ -1340,7 +1340,7 @@ impl CommandApi { ) -> Result<()> { let ctx = self.get_context(account_id).await?; let contact_id = ContactId::new(contact_id); - let contact = Contact::load_from_db(&ctx, contact_id).await?; + let contact = Contact::get_by_id(&ctx, contact_id).await?; let addr = contact.get_addr(); Contact::create(&ctx, &name, addr).await?; Ok(()) diff --git a/deltachat-jsonrpc/src/api/types/chat.rs b/deltachat-jsonrpc/src/api/types/chat.rs index d5f0b8c0b..c8d7d867f 100644 --- a/deltachat-jsonrpc/src/api/types/chat.rs +++ b/deltachat-jsonrpc/src/api/types/chat.rs @@ -53,7 +53,7 @@ impl FullChat { contacts.push( ContactObject::try_from_dc_contact( context, - Contact::load_from_db(context, *contact_id) + Contact::get_by_id(context, *contact_id) .await .context("failed to load contact")?, ) @@ -74,7 +74,7 @@ impl FullChat { let was_seen_recently = if chat.get_type() == Chattype::Single { match contact_ids.get(0) { - Some(contact) => Contact::load_from_db(context, *contact) + Some(contact) => Contact::get_by_id(context, *contact) .await .context("failed to load contact for was_seen_recently")? .was_seen_recently(), diff --git a/deltachat-jsonrpc/src/api/types/chat_list.rs b/deltachat-jsonrpc/src/api/types/chat_list.rs index c7603de46..2c15165d9 100644 --- a/deltachat-jsonrpc/src/api/types/chat_list.rs +++ b/deltachat-jsonrpc/src/api/types/chat_list.rs @@ -107,7 +107,7 @@ pub(crate) async fn get_chat_list_item_by_id( let (dm_chat_contact, was_seen_recently) = if chat.get_type() == Chattype::Single { let contact = chat_contacts.get(0); let was_seen_recently = match contact { - Some(contact) => Contact::load_from_db(ctx, *contact) + Some(contact) => Contact::get_by_id(ctx, *contact) .await .context("contact")? .was_seen_recently(), diff --git a/deltachat-jsonrpc/src/api/types/message.rs b/deltachat-jsonrpc/src/api/types/message.rs index 7ebcccc46..db92ab6fc 100644 --- a/deltachat-jsonrpc/src/api/types/message.rs +++ b/deltachat-jsonrpc/src/api/types/message.rs @@ -113,7 +113,7 @@ impl MessageObject { pub async fn from_msg_id(context: &Context, msg_id: MsgId) -> Result { let message = Message::load_from_db(context, msg_id).await?; - let sender_contact = Contact::load_from_db(context, message.get_from_id()) + let sender_contact = Contact::get_by_id(context, message.get_from_id()) .await .context("failed to load sender contact")?; let sender = ContactObject::try_from_dc_contact(context, sender_contact) @@ -135,7 +135,7 @@ impl MessageObject { let quote = if let Some(quoted_text) = message.quoted_text() { match message.quoted_message(context).await? { Some(quote) => { - let quote_author = Contact::load_from_db(context, quote.get_from_id()) + let quote_author = Contact::get_by_id(context, quote.get_from_id()) .await .context("failed to load quote author contact")?; Some(MessageQuote::WithMessage { @@ -469,7 +469,7 @@ impl MessageSearchResult { pub async fn from_msg_id(context: &Context, msg_id: MsgId) -> Result { let message = Message::load_from_db(context, msg_id).await?; let chat = Chat::load_from_db(context, message.get_chat_id()).await?; - let sender = Contact::load_from_db(context, message.get_from_id()).await?; + let sender = Contact::get_by_id(context, message.get_from_id()).await?; let profile_image = match sender.get_profile_image(context).await? { Some(path_buf) => path_buf.to_str().map(|s| s.to_owned()), diff --git a/src/chat.rs b/src/chat.rs index e02931112..b241dab86 100644 --- a/src/chat.rs +++ b/src/chat.rs @@ -983,7 +983,7 @@ impl ChatId { .iter() .filter(|&contact_id| !contact_id.is_special()) { - let contact = Contact::load_from_db(context, *contact_id).await?; + let contact = Contact::get_by_id(context, *contact_id).await?; let addr = contact.get_addr(); let peerstate = Peerstate::from_addr(context, addr).await?; @@ -1809,7 +1809,7 @@ pub(crate) async fn update_device_icon(context: &Context) -> Result<()> { chat.param.set(Param::ProfileImage, &icon); chat.update_param(context).await?; - let mut contact = Contact::load_from_db(context, ContactId::DEVICE).await?; + let mut contact = Contact::get_by_id(context, ContactId::DEVICE).await?; contact.param.set(Param::ProfileImage, icon); contact.update_param(context).await?; } @@ -1951,7 +1951,7 @@ impl ChatIdBlocked { return Ok(res); } - let contact = Contact::load_from_db(context, contact_id).await?; + let contact = Contact::get_by_id(context, contact_id).await?; let chat_name = contact.get_display_name().to_string(); let mut params = Params::new(); match contact_id { diff --git a/src/chatlist.rs b/src/chatlist.rs index 1f515f3a2..fcbb02d6d 100644 --- a/src/chatlist.rs +++ b/src/chatlist.rs @@ -319,7 +319,7 @@ impl Chatlist { } else { match chat.typ { Chattype::Group | Chattype::Broadcast | Chattype::Mailinglist => { - let lastcontact = Contact::load_from_db(context, lastmsg.from_id) + let lastcontact = Contact::get_by_id(context, lastmsg.from_id) .await .context("loading contact failed")?; (Some(lastmsg), Some(lastcontact)) diff --git a/src/contact.rs b/src/contact.rs index 05f2ca458..92758b04c 100644 --- a/src/contact.rs +++ b/src/contact.rs @@ -338,8 +338,15 @@ impl Default for VerifiedStatus { } impl Contact { - /// Loads a contact snapshot from the database. - pub async fn load_from_db(context: &Context, contact_id: ContactId) -> Result { + /// Loads a single contact object from the database. + /// + /// For contact ContactId::SELF (1), the function returns sth. + /// like "Me" in the selected language and the email address + /// defined by set_config(). + /// + /// For contact ContactId::DEVICE, the function overrides + /// the contact name and status with localized address. + pub async fn get_by_id(context: &Context, contact_id: ContactId) -> Result { let mut contact = context .sql .query_row( @@ -965,7 +972,7 @@ impl Contact { ); let mut ret = String::new(); - if let Ok(contact) = Contact::load_from_db(context, contact_id).await { + if let Ok(contact) = Contact::get_by_id(context, contact_id).await { let loginparam = LoginParam::load_configured_params(context).await?; let peerstate = Peerstate::from_addr(context, &contact.addr).await?; @@ -1052,17 +1059,6 @@ impl Contact { Ok(()) } - /// Get a single contact object. For a list, see eg. get_contacts(). - /// - /// For contact ContactId::SELF (1), the function returns sth. - /// like "Me" in the selected language and the email address - /// defined by set_config(). - pub async fn get_by_id(context: &Context, contact_id: ContactId) -> Result { - let contact = Contact::load_from_db(context, contact_id).await?; - - Ok(contact) - } - /// Updates `param` column in the database. pub async fn update_param(&self, context: &Context) -> Result<()> { context @@ -1323,7 +1319,7 @@ async fn set_block_contact( contact_id ); - let contact = Contact::load_from_db(context, contact_id).await?; + let contact = Contact::get_by_id(context, contact_id).await?; if contact.blocked != new_blocking { context @@ -1385,7 +1381,7 @@ pub(crate) async fn set_profile_image( profile_image: &AvatarAction, was_encrypted: bool, ) -> Result<()> { - let mut contact = Contact::load_from_db(context, contact_id).await?; + let mut contact = Contact::get_by_id(context, contact_id).await?; let changed = match profile_image { AvatarAction::Change(profile_image) => { if contact_id == ContactId::SELF { @@ -1440,7 +1436,7 @@ pub(crate) async fn set_status( .await?; } } else { - let mut contact = Contact::load_from_db(context, contact_id).await?; + let mut contact = Contact::get_by_id(context, contact_id).await?; if contact.status != status { contact.status = status; @@ -1758,7 +1754,7 @@ mod tests { .await?; assert_ne!(id, ContactId::UNDEFINED); - let contact = Contact::load_from_db(&context.ctx, id).await.unwrap(); + let contact = Contact::get_by_id(&context.ctx, id).await.unwrap(); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_authname(), "bob"); assert_eq!(contact.get_display_name(), "bob"); @@ -1786,7 +1782,7 @@ mod tests { .await?; assert_eq!(contact_bob_id, id); assert_eq!(modified, Modifier::Modified); - let contact = Contact::load_from_db(&context.ctx, id).await.unwrap(); + let contact = Contact::get_by_id(&context.ctx, id).await.unwrap(); assert_eq!(contact.get_name(), "someone"); assert_eq!(contact.get_authname(), "bob"); assert_eq!(contact.get_display_name(), "someone"); @@ -1852,7 +1848,7 @@ mod tests { .unwrap(); assert!(!contact_id.is_special()); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_id(), contact_id); assert_eq!(contact.get_name(), "Name one"); assert_eq!(contact.get_authname(), "bla foo"); @@ -1871,7 +1867,7 @@ mod tests { .unwrap(); assert_eq!(contact_id, contact_id_test); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name(), "Real one"); assert_eq!(contact.get_addr(), "one@eins.org"); assert!(!contact.is_blocked()); @@ -1887,7 +1883,7 @@ mod tests { .unwrap(); assert!(!contact_id.is_special()); assert_eq!(sth_modified, Modifier::None); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "three@drei.sam"); assert_eq!(contact.get_addr(), "three@drei.sam"); @@ -1904,7 +1900,7 @@ mod tests { .unwrap(); assert_eq!(contact_id, contact_id_test); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name_n_addr(), "m. serious (three@drei.sam)"); assert!(!contact.is_blocked()); @@ -1919,7 +1915,7 @@ mod tests { .unwrap(); assert_eq!(contact_id, contact_id_test); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "m. serious"); assert_eq!(contact.get_name_n_addr(), "schnucki (three@drei.sam)"); assert!(!contact.is_blocked()); @@ -1935,14 +1931,14 @@ mod tests { .unwrap(); assert!(!contact_id.is_special()); assert_eq!(sth_modified, Modifier::None); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name(), "Wonderland, Alice"); assert_eq!(contact.get_display_name(), "Wonderland, Alice"); assert_eq!(contact.get_addr(), "alice@w.de"); assert_eq!(contact.get_name_n_addr(), "Wonderland, Alice (alice@w.de)"); // check SELF - let contact = Contact::load_from_db(&t, ContactId::SELF).await.unwrap(); + let contact = Contact::get_by_id(&t, ContactId::SELF).await.unwrap(); assert_eq!(contact.get_name(), stock_str::self_msg(&t).await); assert_eq!(contact.get_addr(), ""); // we're not configured assert!(!contact.is_blocked()); @@ -1973,7 +1969,7 @@ mod tests { assert_eq!(chatlist.len(), 1); let contacts = get_chat_contacts(&t, chat_id).await?; let contact_id = contacts.first().unwrap(); - let contact = Contact::load_from_db(&t, *contact_id).await?; + let contact = Contact::get_by_id(&t, *contact_id).await?; assert_eq!(contact.get_authname(), ""); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "f@example.org"); @@ -1999,7 +1995,7 @@ mod tests { assert_eq!(Chat::load_from_db(&t, chat_id).await?.name, "Flobbyfoo"); let chatlist = Chatlist::try_load(&t, 0, Some("flobbyfoo"), None).await?; assert_eq!(chatlist.len(), 1); - let contact = Contact::load_from_db(&t, *contact_id).await?; + let contact = Contact::get_by_id(&t, *contact_id).await?; assert_eq!(contact.get_authname(), "Flobbyfoo"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "Flobbyfoo"); @@ -2029,7 +2025,7 @@ mod tests { assert_eq!(chatlist.len(), 0); let chatlist = Chatlist::try_load(&t, 0, Some("Foo Flobby"), None).await?; assert_eq!(chatlist.len(), 1); - let contact = Contact::load_from_db(&t, *contact_id).await?; + let contact = Contact::get_by_id(&t, *contact_id).await?; assert_eq!(contact.get_authname(), "Foo Flobby"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "Foo Flobby"); @@ -2047,7 +2043,7 @@ mod tests { assert_eq!(Chat::load_from_db(&t, chat_id).await?.name, "Falk"); let chatlist = Chatlist::try_load(&t, 0, Some("Falk"), None).await?; assert_eq!(chatlist.len(), 1); - let contact = Contact::load_from_db(&t, *contact_id).await?; + let contact = Contact::get_by_id(&t, *contact_id).await?; assert_eq!(contact.get_authname(), "Foo Flobby"); assert_eq!(contact.get_name(), "Falk"); assert_eq!(contact.get_display_name(), "Falk"); @@ -2086,7 +2082,7 @@ mod tests { // If a contact has ongoing chats, contact is only hidden on deletion Contact::delete(&alice, contact_id).await?; - let contact = Contact::load_from_db(&alice, contact_id).await?; + let contact = Contact::get_by_id(&alice, contact_id).await?; assert_eq!(contact.origin, Origin::Hidden); assert_eq!( Contact::get_all(&alice, 0, Some("bob@example.net")) @@ -2100,7 +2096,7 @@ mod tests { // Can delete contact physically now Contact::delete(&alice, contact_id).await?; - assert!(Contact::load_from_db(&alice, contact_id).await.is_err()); + assert!(Contact::get_by_id(&alice, contact_id).await.is_err()); assert_eq!( Contact::get_all(&alice, 0, Some("bob@example.net")) .await? @@ -2119,7 +2115,7 @@ mod tests { let contact_id1 = Contact::create(&t, "Foo", "foo@bar.de").await?; assert_eq!(Contact::get_all(&t, 0, Some("foo@bar.de")).await?.len(), 1); Contact::delete(&t, contact_id1).await?; - assert!(Contact::load_from_db(&t, contact_id1).await.is_err()); + assert!(Contact::get_by_id(&t, contact_id1).await.is_err()); assert_eq!(Contact::get_all(&t, 0, Some("foo@bar.de")).await?.len(), 0); let contact_id2 = Contact::create(&t, "Foo", "foo@bar.de").await?; assert_ne!(contact_id2, contact_id1); @@ -2128,12 +2124,12 @@ mod tests { // test recreation after hiding t.create_chat_with_contact("Foo", "foo@bar.de").await; Contact::delete(&t, contact_id2).await?; - let contact = Contact::load_from_db(&t, contact_id2).await?; + let contact = Contact::get_by_id(&t, contact_id2).await?; assert_eq!(contact.origin, Origin::Hidden); assert_eq!(Contact::get_all(&t, 0, Some("foo@bar.de")).await?.len(), 0); let contact_id3 = Contact::create(&t, "Foo", "foo@bar.de").await?; - let contact = Contact::load_from_db(&t, contact_id3).await?; + let contact = Contact::get_by_id(&t, contact_id3).await?; assert_eq!(contact.origin, Origin::ManuallyCreated); assert_eq!(contact_id3, contact_id2); assert_eq!(Contact::get_all(&t, 0, Some("foo@bar.de")).await?.len(), 1); @@ -2156,7 +2152,7 @@ mod tests { .unwrap(); assert!(!contact_id.is_special()); assert_eq!(sth_modified, Modifier::Created); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "bob1"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "bob1"); @@ -2172,7 +2168,7 @@ mod tests { .unwrap(); assert!(!contact_id.is_special()); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "bob2"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "bob2"); @@ -2182,7 +2178,7 @@ mod tests { .await .unwrap(); assert!(!contact_id.is_special()); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "bob2"); assert_eq!(contact.get_name(), "bob3"); assert_eq!(contact.get_display_name(), "bob3"); @@ -2198,7 +2194,7 @@ mod tests { .unwrap(); assert!(!contact_id.is_special()); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "bob4"); assert_eq!(contact.get_name(), "bob3"); assert_eq!(contact.get_display_name(), "bob3"); @@ -2211,7 +2207,7 @@ mod tests { // manually create "claire@example.org" without a given name let contact_id = Contact::create(&t, "", "claire@example.org").await.unwrap(); assert!(!contact_id.is_special()); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), ""); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "claire@example.org"); @@ -2227,7 +2223,7 @@ mod tests { .unwrap(); assert_eq!(contact_id, contact_id_same); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "claire1"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "claire1"); @@ -2243,7 +2239,7 @@ mod tests { .unwrap(); assert_eq!(contact_id, contact_id_same); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "claire2"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "claire2"); @@ -2266,7 +2262,7 @@ mod tests { ) .await?; assert_eq!(sth_modified, Modifier::Created); - let contact = Contact::load_from_db(&t, contact_id).await?; + let contact = Contact::get_by_id(&t, contact_id).await?; assert_eq!(contact.get_display_name(), "Bob"); // Incoming message from someone else with "Not Bob" in the "To:" field. @@ -2279,7 +2275,7 @@ mod tests { .await?; assert_eq!(contact_id, contact_id_same); assert_eq!(sth_modified, Modifier::Modified); - let contact = Contact::load_from_db(&t, contact_id).await?; + let contact = Contact::get_by_id(&t, contact_id).await?; assert_eq!(contact.get_display_name(), "Not Bob"); // Incoming message from Bob, changing the name back. @@ -2292,7 +2288,7 @@ mod tests { .await?; assert_eq!(contact_id, contact_id_same); assert_eq!(sth_modified, Modifier::Modified); // This was None until the bugfix - let contact = Contact::load_from_db(&t, contact_id).await?; + let contact = Contact::get_by_id(&t, contact_id).await?; assert_eq!(contact.get_display_name(), "Bob"); Ok(()) @@ -2306,7 +2302,7 @@ mod tests { let contact_id = Contact::create(&t, "dave1", "dave@example.org") .await .unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), ""); assert_eq!(contact.get_name(), "dave1"); assert_eq!(contact.get_display_name(), "dave1"); @@ -2320,14 +2316,14 @@ mod tests { ) .await .unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "dave2"); assert_eq!(contact.get_name(), "dave1"); assert_eq!(contact.get_display_name(), "dave1"); // manually clear the name Contact::create(&t, "", "dave@example.org").await.unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_authname(), "dave2"); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "dave2"); @@ -2345,21 +2341,21 @@ mod tests { let t = TestContext::new().await; let contact_id = Contact::create(&t, "", "").await.unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_addr(), "dave@example.org"); let contact_id = Contact::create(&t, "", "Mueller, Dave ") .await .unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name(), "Mueller, Dave"); assert_eq!(contact.get_addr(), "dave@example.org"); let contact_id = Contact::create(&t, "name1", "name2 ") .await .unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!(contact.get_name(), "name1"); assert_eq!(contact.get_addr(), "dave@example.org"); @@ -2603,7 +2599,7 @@ CCCB 5AA9 F6E1 141C 9431 Origin::ManuallyCreated, ) .await?; - let contact = Contact::load_from_db(&alice, contact_id).await?; + let contact = Contact::get_by_id(&alice, contact_id).await?; assert_eq!(contact.last_seen(), 0); let mime = br#"Subject: Hello @@ -2620,7 +2616,7 @@ Hi."#; let timestamp = msg.get_timestamp(); assert!(timestamp > 0); - let contact = Contact::load_from_db(&alice, contact_id).await?; + let contact = Contact::get_by_id(&alice, contact_id).await?; assert_eq!(contact.last_seen(), timestamp); Ok(()) diff --git a/src/context.rs b/src/context.rs index 627e63c78..13e747099 100644 --- a/src/context.rs +++ b/src/context.rs @@ -1042,7 +1042,7 @@ mod tests { async fn receive_msg(t: &TestContext, chat: &Chat) { let members = get_chat_contacts(t, chat.id).await.unwrap(); - let contact = Contact::load_from_db(t, *members.first().unwrap()) + let contact = Contact::get_by_id(t, *members.first().unwrap()) .await .unwrap(); let msg = format!( diff --git a/src/message.rs b/src/message.rs index 3f2890157..e875fdfab 100644 --- a/src/message.rs +++ b/src/message.rs @@ -1129,7 +1129,7 @@ pub async fn get_msg_info(context: &Context, msg_id: MsgId) -> Result { let fts = timestamp_to_str(msg.get_timestamp()); ret += &format!("Sent: {fts}"); - let name = Contact::load_from_db(context, msg.from_id) + let name = Contact::get_by_id(context, msg.from_id) .await .map(|contact| contact.get_name_n_addr()) .unwrap_or_default(); @@ -1178,7 +1178,7 @@ pub async fn get_msg_info(context: &Context, msg_id: MsgId) -> Result { let fts = timestamp_to_str(ts); ret += &format!("Read: {fts}"); - let name = Contact::load_from_db(context, contact_id) + let name = Contact::get_by_id(context, contact_id) .await .map(|contact| contact.get_name_n_addr()) .unwrap_or_default(); @@ -1835,7 +1835,7 @@ async fn ndn_maybe_add_info_msg( Contact::lookup_id_by_addr(context, failed_recipient, Origin::Unknown) .await? .context("contact ID not found")?; - let contact = Contact::load_from_db(context, contact_id).await?; + let contact = Contact::get_by_id(context, contact_id).await?; // Tell the user which of the recipients failed if we know that (because in // a group, this might otherwise be unclear) let text = stock_str::failed_sending_to(context, contact.get_display_name()).await; @@ -2309,7 +2309,7 @@ mod tests { .unwrap() .first() .unwrap(); - let contact = Contact::load_from_db(&alice, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&alice, contact_id).await.unwrap(); let mut msg = Message::new(Viewtype::Text); msg.set_text(Some("bla blubb".to_string())); @@ -2329,7 +2329,7 @@ mod tests { .unwrap() .first() .unwrap(); - let contact = Contact::load_from_db(&bob, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&bob, contact_id).await.unwrap(); let msg = bob.recv_msg(&alice.pop_sent_msg().await).await; assert_eq!(msg.chat_id, chat.id); assert_eq!(msg.text, Some("bla blubb".to_string())); diff --git a/src/mimefactory.rs b/src/mimefactory.rs index 24a22de0e..2ad87314f 100644 --- a/src/mimefactory.rs +++ b/src/mimefactory.rs @@ -237,7 +237,7 @@ impl<'a> MimeFactory<'a> { ) -> Result> { ensure!(!msg.chat_id.is_special(), "Invalid chat id"); - let contact = Contact::load_from_db(context, msg.from_id).await?; + let contact = Contact::get_by_id(context, msg.from_id).await?; let from_addr = context.get_primary_self_addr().await?; let from_displayname = context .get_config(Config::Displayname) @@ -2196,7 +2196,7 @@ mod tests { .await .unwrap() .unwrap(); - let alice_contact = Contact::load_from_db(&bob.ctx, alice_id).await.unwrap(); + let alice_contact = Contact::get_by_id(&bob.ctx, alice_id).await.unwrap(); assert!(alice_contact .get_profile_image(&bob.ctx) .await @@ -2228,7 +2228,7 @@ mod tests { assert_eq!(body.match_indices("Subject:").count(), 0); bob.recv_msg(&sent_msg).await; - let alice_contact = Contact::load_from_db(&bob.ctx, alice_id).await.unwrap(); + let alice_contact = Contact::get_by_id(&bob.ctx, alice_id).await.unwrap(); assert!(alice_contact .get_profile_image(&bob.ctx) .await diff --git a/src/peerstate.rs b/src/peerstate.rs index 47b9cda13..8a08a175d 100644 --- a/src/peerstate.rs +++ b/src/peerstate.rs @@ -535,7 +535,7 @@ impl Peerstate { stock_str::contact_setup_changed(context, &self.addr).await } PeerstateChange::Aeap(new_addr) => { - let old_contact = Contact::load_from_db(context, contact_id).await?; + let old_contact = Contact::get_by_id(context, contact_id).await?; stock_str::aeap_addr_changed( context, old_contact.get_display_name(), diff --git a/src/receive_imf.rs b/src/receive_imf.rs index 385139c44..6f4a726cc 100644 --- a/src/receive_imf.rs +++ b/src/receive_imf.rs @@ -404,7 +404,7 @@ pub async fn from_field_to_contact_id( } else { let mut from_id_blocked = false; let mut incoming_origin = Origin::Unknown; - if let Ok(contact) = Contact::load_from_db(context, from_id).await { + if let Ok(contact) = Contact::get_by_id(context, from_id).await { from_id_blocked = contact.blocked; incoming_origin = contact.origin; } @@ -679,7 +679,7 @@ async fn add_parts( let create_blocked = if from_id == ContactId::SELF { Blocked::Not } else { - let contact = Contact::load_from_db(context, from_id).await?; + let contact = Contact::get_by_id(context, from_id).await?; match contact.is_blocked() { true => Blocked::Yes, false if is_bot => Blocked::Not, @@ -804,7 +804,7 @@ async fn add_parts( } } if chat_id.is_none() && allow_creation { - let to_contact = Contact::load_from_db(context, to_id).await?; + let to_contact = Contact::get_by_id(context, to_id).await?; if let Some(list_id) = to_contact.param.get(Param::ListId) { if let Some((id, _, blocked)) = chat::get_chat_id_by_grpid(context, list_id).await? @@ -2005,7 +2005,7 @@ async fn apply_mailinglist_changes( }; let (contact_id, _) = Contact::add_or_lookup(context, "", list_post, Origin::Hidden).await?; - let mut contact = Contact::load_from_db(context, contact_id).await?; + let mut contact = Contact::get_by_id(context, contact_id).await?; if contact.param.get(Param::ListId) != Some(listid) { contact.param.set(Param::ListId, listid); contact.update_param(context).await?; @@ -2123,7 +2123,7 @@ async fn check_verified_properties( from_id: ContactId, to_ids: &[ContactId], ) -> Result<()> { - let contact = Contact::load_from_db(context, from_id).await?; + let contact = Contact::get_by_id(context, from_id).await?; ensure!(mimeparser.was_encrypted(), "This message is not encrypted"); diff --git a/src/receive_imf/tests.rs b/src/receive_imf/tests.rs index 680f58bb6..8079dde7f 100644 --- a/src/receive_imf/tests.rs +++ b/src/receive_imf/tests.rs @@ -407,7 +407,7 @@ async fn test_escaped_from() { false, ).await.unwrap(); assert_eq!( - Contact::load_from_db(&t, contact_id) + Contact::get_by_id(&t, contact_id) .await .unwrap() .get_authname(), @@ -452,7 +452,7 @@ async fn test_escaped_recipients() { ) .await .unwrap(); - let contact = Contact::load_from_db(&t, carl_contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, carl_contact_id).await.unwrap(); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "h2"); @@ -499,7 +499,7 @@ async fn test_cc_to_contact() { ) .await .unwrap(); - let contact = Contact::load_from_db(&t, carl_contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, carl_contact_id).await.unwrap(); assert_eq!(contact.get_name(), ""); assert_eq!(contact.get_display_name(), "Carl"); } @@ -797,12 +797,12 @@ async fn test_github_mailing_list() -> Result<()> { assert_eq!(contacts.len(), 0); // mailing list recipients and senders do not count as "known contacts" let msg1 = get_chat_msg(&t, chat_id, 0, 2).await; - let contact1 = Contact::load_from_db(&t.ctx, msg1.from_id).await?; + let contact1 = Contact::get_by_id(&t.ctx, msg1.from_id).await?; assert_eq!(contact1.get_addr(), "notifications@github.com"); assert_eq!(contact1.get_display_name(), "notifications@github.com"); // Make sure this is not "Max Mustermann" or somethinng let msg2 = get_chat_msg(&t, chat_id, 1, 2).await; - let contact2 = Contact::load_from_db(&t.ctx, msg2.from_id).await?; + let contact2 = Contact::get_by_id(&t.ctx, msg2.from_id).await?; assert_eq!(contact2.get_addr(), "notifications@github.com"); assert_eq!(msg1.get_override_sender_name().unwrap(), "Max Mustermann"); @@ -847,7 +847,7 @@ async fn test_classic_mailing_list() -> Result<()> { assert_eq!(chat.get_mailinglist_addr(), Some("delta@codespeak.net")); let msg = get_chat_msg(&t, chat_id, 0, 1).await; - let contact1 = Contact::load_from_db(&t.ctx, msg.from_id).await.unwrap(); + let contact1 = Contact::get_by_id(&t.ctx, msg.from_id).await.unwrap(); assert_eq!(contact1.get_addr(), "bob@posteo.org"); let sent = t.send_text(chat.id, "Hello mailinglist!").await; @@ -890,7 +890,7 @@ async fn test_other_device_writes_to_mailinglist() -> Result<()> { Contact::lookup_id_by_addr(&t, "delta@codespeak.net", Origin::Unknown) .await? .unwrap(); - let list_post_contact = Contact::load_from_db(&t, list_post_contact_id).await?; + let list_post_contact = Contact::get_by_id(&t, list_post_contact_id).await?; assert_eq!( list_post_contact.param.get(Param::ListId).unwrap(), "delta.codespeak.net" @@ -1365,7 +1365,7 @@ async fn test_apply_mailinglist_changes_assigned_by_reply() { .await .unwrap() .unwrap(); - let contact = Contact::load_from_db(&t, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t, contact_id).await.unwrap(); assert_eq!( contact.param.get(Param::ListId).unwrap(), "deltachat-core-rust.deltachat.github.com" @@ -2038,12 +2038,12 @@ Message content Second signature"; receive_imf(&alice, first_message, false).await?; - let contact = Contact::load_from_db(&alice, bob_contact_id).await?; + let contact = Contact::get_by_id(&alice, bob_contact_id).await?; assert_eq!(contact.get_status(), "First signature"); assert_eq!(contact.get_display_name(), "Bob1"); receive_imf(&alice, second_message, false).await?; - let contact = Contact::load_from_db(&alice, bob_contact_id).await?; + let contact = Contact::get_by_id(&alice, bob_contact_id).await?; assert_eq!(contact.get_status(), "Second signature"); assert_eq!(contact.get_display_name(), "Bob2"); @@ -2051,7 +2051,7 @@ Second signature"; receive_imf(&alice, first_message, false).await?; // No change because last message is duplicate of the first. - let contact = Contact::load_from_db(&alice, bob_contact_id).await?; + let contact = Contact::get_by_id(&alice, bob_contact_id).await?; assert_eq!(contact.get_status(), "Second signature"); assert_eq!(contact.get_display_name(), "Bob2"); @@ -2069,7 +2069,7 @@ async fn test_ignore_footer_status_from_mailinglist() -> Result<()> { ) .await? .0; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), ""); assert_eq!(Chatlist::try_load(&t, 0, None, None).await?.len(), 0); @@ -2089,7 +2089,7 @@ Original signature", .await?; let msg = t.get_last_msg().await; let one2one_chat_id = msg.chat_id; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), "Original signature"); assert!(!msg.has_html()); @@ -2112,7 +2112,7 @@ Tap here to unsubscribe ...", ) .await?; let ml_chat_id = t.get_last_msg().await.chat_id; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), "Original signature"); receive_imf( @@ -2129,7 +2129,7 @@ Original signature updated", false, ) .await?; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), "Original signature updated"); assert_eq!(get_chat_msgs(&t, one2one_chat_id).await?.len(), 2); assert_eq!(get_chat_msgs(&t, ml_chat_id).await?.len(), 1); @@ -2164,7 +2164,7 @@ sig wednesday", ) .await?; let chat_id = t.get_last_msg().await.chat_id; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), "sig wednesday"); assert_eq!(get_chat_msgs(&t, chat_id).await?.len(), 1); @@ -2182,7 +2182,7 @@ sig tuesday", false, ) .await?; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), "sig wednesday"); assert_eq!(get_chat_msgs(&t, chat_id).await?.len(), 2); @@ -2200,7 +2200,7 @@ sig thursday", false, ) .await?; - let bob = Contact::load_from_db(&t, bob_id).await?; + let bob = Contact::get_by_id(&t, bob_id).await?; assert_eq!(bob.get_status(), "sig thursday"); assert_eq!(get_chat_msgs(&t, chat_id).await?.len(), 3); diff --git a/src/securejoin.rs b/src/securejoin.rs index 2d34b7c2f..2b24a5b86 100644 --- a/src/securejoin.rs +++ b/src/securejoin.rs @@ -210,7 +210,7 @@ async fn fingerprint_equals_sender( fingerprint: &Fingerprint, contact_id: ContactId, ) -> Result { - let contact = Contact::load_from_db(context, contact_id).await?; + let contact = Contact::get_by_id(context, contact_id).await?; let peerstate = match Peerstate::from_addr(context, contact.get_addr()).await { Ok(peerstate) => peerstate, Err(err) => { @@ -411,7 +411,7 @@ pub(crate) async fn handle_securejoin_handshake( .await?; return Ok(HandshakeMessage::Ignore); } - let contact_addr = Contact::load_from_db(context, contact_id) + let contact_addr = Contact::get_by_id(context, contact_id) .await? .get_addr() .to_owned(); @@ -580,7 +580,7 @@ pub(crate) async fn observe_securejoin_on_other_device( .await?; return Ok(HandshakeMessage::Ignore); } - let addr = Contact::load_from_db(context, contact_id) + let addr = Contact::get_by_id(context, contact_id) .await? .get_addr() .to_lowercase(); @@ -640,7 +640,7 @@ pub(crate) async fn observe_securejoin_on_other_device( if mark_peer_as_verified( context, fingerprint, - Contact::load_from_db(context, contact_id) + Contact::get_by_id(context, contact_id) .await? .get_addr() .to_owned(), @@ -889,7 +889,7 @@ mod tests { .await .expect("Error looking up contact") .expect("Contact not found"); - let contact_bob = Contact::load_from_db(&alice.ctx, contact_bob_id) + let contact_bob = Contact::get_by_id(&alice.ctx, contact_bob_id) .await .unwrap(); assert_eq!( @@ -952,7 +952,7 @@ mod tests { .await .expect("Error looking up contact") .expect("Contact not found"); - let contact_alice = Contact::load_from_db(&bob.ctx, contact_alice_id) + let contact_alice = Contact::get_by_id(&bob.ctx, contact_alice_id) .await .unwrap(); assert_eq!( @@ -1078,7 +1078,7 @@ mod tests { Origin::ManuallyCreated, ) .await?; - let contact_bob = Contact::load_from_db(&alice.ctx, contact_bob_id).await?; + let contact_bob = Contact::get_by_id(&alice.ctx, contact_bob_id).await?; assert_eq!( contact_bob.is_verified(&alice.ctx).await?, VerifiedStatus::Unverified @@ -1105,7 +1105,7 @@ mod tests { .await .expect("Error looking up contact") .expect("Contact not found"); - let contact_alice = Contact::load_from_db(&bob.ctx, contact_alice_id).await?; + let contact_alice = Contact::get_by_id(&bob.ctx, contact_alice_id).await?; assert_eq!( contact_bob.is_verified(&bob.ctx).await?, VerifiedStatus::Unverified @@ -1246,7 +1246,7 @@ mod tests { Contact::lookup_id_by_addr(&alice.ctx, "bob@example.net", Origin::Unknown) .await? .expect("Contact not found"); - let contact_bob = Contact::load_from_db(&alice.ctx, contact_bob_id).await?; + let contact_bob = Contact::get_by_id(&alice.ctx, contact_bob_id).await?; assert_eq!( contact_bob.is_verified(&alice.ctx).await?, VerifiedStatus::Unverified @@ -1302,7 +1302,7 @@ mod tests { .await .expect("Error looking up contact") .expect("Contact not found"); - let contact_alice = Contact::load_from_db(&bob.ctx, contact_alice_id).await?; + let contact_alice = Contact::get_by_id(&bob.ctx, contact_alice_id).await?; assert_eq!( contact_bob.is_verified(&bob.ctx).await?, VerifiedStatus::Unverified diff --git a/src/smtp.rs b/src/smtp.rs index 5916cad2b..5cfc4fdfa 100644 --- a/src/smtp.rs +++ b/src/smtp.rs @@ -683,7 +683,7 @@ async fn send_mdn_msg_id( contact_id: ContactId, smtp: &mut Smtp, ) -> Result<()> { - let contact = Contact::load_from_db(context, contact_id).await?; + let contact = Contact::get_by_id(context, contact_id).await?; if contact.is_blocked() { return Err(format_err!("Contact is blocked")); } diff --git a/src/stock_str.rs b/src/stock_str.rs index d41e43057..0dcd43f19 100644 --- a/src/stock_str.rs +++ b/src/stock_str.rs @@ -1387,7 +1387,7 @@ mod tests { let contact_id = Contact::create(&t.ctx, "Someone", "someone@example.org") .await .unwrap(); - let contact = Contact::load_from_db(&t.ctx, contact_id).await.unwrap(); + let contact = Contact::get_by_id(&t.ctx, contact_id).await.unwrap(); // uses %1$s substitution assert_eq!( contact_verified(&t, &contact).await, diff --git a/src/test_utils.rs b/src/test_utils.rs index d6278e206..816040ec7 100644 --- a/src/test_utils.rs +++ b/src/test_utils.rs @@ -553,7 +553,7 @@ impl TestContext { Modifier::Modified => warn!(&self.ctx, "Contact {} modified by TestContext", &addr), Modifier::Created => warn!(&self.ctx, "Contact {} created by TestContext", &addr), } - Contact::load_from_db(&self.ctx, contact_id).await.unwrap() + Contact::get_by_id(&self.ctx, contact_id).await.unwrap() } /// Returns 1:1 [`Chat`] with another account, if it exists.