fix: message::update_msg_state(): Reset error if message is delivered (#5119)

This commit is contained in:
iequidoo
2024-01-02 23:31:45 -03:00
committed by iequidoo
parent af0833e821
commit ff54cf24a1
2 changed files with 38 additions and 3 deletions

View File

@@ -1663,10 +1663,14 @@ pub(crate) async fn update_msg_state(
msg_id: MsgId,
state: MessageState,
) -> Result<()> {
let error_subst = match state >= MessageState::OutDelivered {
true => ", error=''",
false => "",
};
context
.sql
.execute(
"UPDATE msgs SET state=?1 WHERE id=?2 AND (?1!=?3 OR state<?3)",
&format!("UPDATE msgs SET state=?1 {error_subst} WHERE id=?2 AND (?1!=?3 OR state<?3)"),
(state, msg_id, MessageState::OutDelivered),
)
.await?;