mirror of
https://github.com/chatmail/core.git
synced 2026-04-29 11:26:29 +03:00
fix: do not ignore Message::load_from_db errors
This commit is contained in:
@@ -459,7 +459,19 @@ impl Message {
|
||||
}
|
||||
|
||||
/// Loads message with given ID from the database.
|
||||
///
|
||||
/// Returns an error if the message does not exist.
|
||||
pub async fn load_from_db(context: &Context, id: MsgId) -> Result<Message> {
|
||||
let message = Self::load_from_db_optional(context, id)
|
||||
.await?
|
||||
.context("Message {id} does not exist")?;
|
||||
Ok(message)
|
||||
}
|
||||
|
||||
/// Loads message with given ID from the database.
|
||||
///
|
||||
/// Returns `None` if the message does not exist.
|
||||
pub async fn load_from_db_optional(context: &Context, id: MsgId) -> Result<Option<Message>> {
|
||||
ensure!(
|
||||
!id.is_special(),
|
||||
"Can not load special message ID {} from DB",
|
||||
@@ -467,7 +479,7 @@ impl Message {
|
||||
);
|
||||
let msg = context
|
||||
.sql
|
||||
.query_row(
|
||||
.query_row_optional(
|
||||
concat!(
|
||||
"SELECT",
|
||||
" m.id AS id,",
|
||||
|
||||
@@ -348,7 +348,9 @@ impl Chat {
|
||||
// The message reacted to may be deleted physically (`load_from_db()` fails) or marked as a tombstone (`is_trash()`).
|
||||
// These are no errors as `Param::LastReaction*` are just weak pointers.
|
||||
// Instead, just return `Ok(None)` and let the caller create another summary.
|
||||
if let Ok(reaction_msg) = Message::load_from_db(context, reaction_msg_id).await {
|
||||
if let Some(reaction_msg) =
|
||||
Message::load_from_db_optional(context, reaction_msg_id).await?
|
||||
{
|
||||
if !reaction_msg.chat_id.is_trash() {
|
||||
let reaction_contact_id = ContactId::new(
|
||||
self.param
|
||||
|
||||
Reference in New Issue
Block a user