mirror of
https://github.com/chatmail/core.git
synced 2026-05-02 04:46:29 +03:00
Resultify update_msg_state
This commit is contained in:
@@ -2004,7 +2004,7 @@ async fn prepare_send_msg(
|
|||||||
chat_id.is_unset() || chat_id == msg.chat_id,
|
chat_id.is_unset() || chat_id == msg.chat_id,
|
||||||
"Inconsistent chat ID"
|
"Inconsistent chat ID"
|
||||||
);
|
);
|
||||||
message::update_msg_state(context, msg.id, MessageState::OutPending).await;
|
message::update_msg_state(context, msg.id, MessageState::OutPending).await?;
|
||||||
}
|
}
|
||||||
let job = job::send_msg_job(context, msg.id).await?;
|
let job = job::send_msg_job(context, msg.id).await?;
|
||||||
|
|
||||||
|
|||||||
@@ -704,7 +704,7 @@ pub async fn action_exists(context: &Context, action: Action) -> Result<bool> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn set_delivered(context: &Context, msg_id: MsgId) -> Result<()> {
|
async fn set_delivered(context: &Context, msg_id: MsgId) -> Result<()> {
|
||||||
message::update_msg_state(context, msg_id, MessageState::OutDelivered).await;
|
message::update_msg_state(context, msg_id, MessageState::OutDelivered).await?;
|
||||||
let chat_id: ChatId = context
|
let chat_id: ChatId = context
|
||||||
.sql
|
.sql
|
||||||
.query_get_value("SELECT chat_id FROM msgs WHERE id=?", paramsv![msg_id])
|
.query_get_value("SELECT chat_id FROM msgs WHERE id=?", paramsv![msg_id])
|
||||||
|
|||||||
@@ -1297,7 +1297,7 @@ pub async fn markseen_msgs(context: &Context, msg_ids: Vec<MsgId>) -> Result<()>
|
|||||||
if curr_blocked == Blocked::Not
|
if curr_blocked == Blocked::Not
|
||||||
&& (curr_state == MessageState::InFresh || curr_state == MessageState::InNoticed)
|
&& (curr_state == MessageState::InFresh || curr_state == MessageState::InNoticed)
|
||||||
{
|
{
|
||||||
update_msg_state(context, id, MessageState::InSeen).await;
|
update_msg_state(context, id, MessageState::InSeen).await?;
|
||||||
info!(context, "Seen message {}.", id);
|
info!(context, "Seen message {}.", id);
|
||||||
|
|
||||||
job::add(
|
job::add(
|
||||||
@@ -1316,15 +1316,19 @@ pub async fn markseen_msgs(context: &Context, msg_ids: Vec<MsgId>) -> Result<()>
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn update_msg_state(context: &Context, msg_id: MsgId, state: MessageState) -> bool {
|
pub(crate) async fn update_msg_state(
|
||||||
|
context: &Context,
|
||||||
|
msg_id: MsgId,
|
||||||
|
state: MessageState,
|
||||||
|
) -> Result<()> {
|
||||||
context
|
context
|
||||||
.sql
|
.sql
|
||||||
.execute(
|
.execute(
|
||||||
"UPDATE msgs SET state=? WHERE id=?;",
|
"UPDATE msgs SET state=? WHERE id=?;",
|
||||||
paramsv![state, msg_id],
|
paramsv![state, msg_id],
|
||||||
)
|
)
|
||||||
.await
|
.await?;
|
||||||
.is_ok()
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
// as we do not cut inside words, this results in about 32-42 characters.
|
// as we do not cut inside words, this results in about 32-42 characters.
|
||||||
@@ -1456,7 +1460,7 @@ pub async fn handle_mdn(
|
|||||||
|| msg_state == MessageState::OutPending
|
|| msg_state == MessageState::OutPending
|
||||||
|| msg_state == MessageState::OutDelivered
|
|| msg_state == MessageState::OutDelivered
|
||||||
{
|
{
|
||||||
update_msg_state(context, msg_id, MessageState::OutMdnRcvd).await;
|
update_msg_state(context, msg_id, MessageState::OutMdnRcvd).await?;
|
||||||
Ok(Some((chat_id, msg_id)))
|
Ok(Some((chat_id, msg_id)))
|
||||||
} else {
|
} else {
|
||||||
Ok(None)
|
Ok(None)
|
||||||
@@ -2043,7 +2047,7 @@ mod tests {
|
|||||||
let payload = alice.pop_sent_msg().await;
|
let payload = alice.pop_sent_msg().await;
|
||||||
assert_state(&alice, alice_msg.id, MessageState::OutDelivered).await;
|
assert_state(&alice, alice_msg.id, MessageState::OutDelivered).await;
|
||||||
|
|
||||||
update_msg_state(&alice, alice_msg.id, MessageState::OutMdnRcvd).await;
|
update_msg_state(&alice, alice_msg.id, MessageState::OutMdnRcvd).await?;
|
||||||
assert_state(&alice, alice_msg.id, MessageState::OutMdnRcvd).await;
|
assert_state(&alice, alice_msg.id, MessageState::OutMdnRcvd).await;
|
||||||
|
|
||||||
set_msg_failed(&alice, alice_msg.id, Some("badly failed")).await;
|
set_msg_failed(&alice, alice_msg.id, Some("badly failed")).await;
|
||||||
|
|||||||
@@ -317,7 +317,9 @@ impl TestContext {
|
|||||||
.execute("DELETE FROM jobs WHERE id=?;", paramsv![rowid])
|
.execute("DELETE FROM jobs WHERE id=?;", paramsv![rowid])
|
||||||
.await
|
.await
|
||||||
.expect("failed to remove job");
|
.expect("failed to remove job");
|
||||||
update_msg_state(&self.ctx, id, MessageState::OutDelivered).await;
|
update_msg_state(&self.ctx, id, MessageState::OutDelivered)
|
||||||
|
.await
|
||||||
|
.expect("failed to update message state");
|
||||||
SentMessage {
|
SentMessage {
|
||||||
params,
|
params,
|
||||||
blob_path,
|
blob_path,
|
||||||
|
|||||||
Reference in New Issue
Block a user