refactor: flatten handle_auth_require() with let..else

This commit is contained in:
link2xt
2023-12-18 12:09:57 +00:00
parent 35bd56ffea
commit e97955f5a0

View File

@@ -82,26 +82,27 @@ pub(super) async fn handle_auth_required(
context: &Context, context: &Context,
message: &MimeMessage, message: &MimeMessage,
) -> Result<HandshakeMessage> { ) -> Result<HandshakeMessage> {
match BobState::from_db(&context.sql).await? { let Some(mut bobstate) = BobState::from_db(&context.sql).await? else {
Some(mut bobstate) => match bobstate.handle_message(context, message).await? { return Ok(HandshakeMessage::Ignore);
Some(BobHandshakeStage::Terminated(why)) => { };
bobstate.notify_aborted(context, why).await?;
Ok(HandshakeMessage::Done) match bobstate.handle_message(context, message).await? {
Some(BobHandshakeStage::Terminated(why)) => {
bobstate.notify_aborted(context, why).await?;
Ok(HandshakeMessage::Done)
}
Some(_stage) => {
if bobstate.is_join_group() {
// The message reads "Alice replied, waiting to be added to the group…",
// so only show it on secure-join and not on setup-contact.
let contact_id = bobstate.invite().contact_id();
let msg = stock_str::secure_join_replies(context, contact_id).await;
let chat_id = bobstate.joining_chat_id(context).await?;
chat::add_info_msg(context, chat_id, &msg, time()).await?;
} }
Some(_stage) => { bobstate.emit_progress(context, JoinerProgress::RequestWithAuthSent);
if bobstate.is_join_group() { Ok(HandshakeMessage::Done)
// The message reads "Alice replied, waiting to be added to the group…", }
// so only show it on secure-join and not on setup-contact.
let contact_id = bobstate.invite().contact_id();
let msg = stock_str::secure_join_replies(context, contact_id).await;
let chat_id = bobstate.joining_chat_id(context).await?;
chat::add_info_msg(context, chat_id, &msg, time()).await?;
}
bobstate.emit_progress(context, JoinerProgress::RequestWithAuthSent);
Ok(HandshakeMessage::Done)
}
None => Ok(HandshakeMessage::Ignore),
},
None => Ok(HandshakeMessage::Ignore), None => Ok(HandshakeMessage::Ignore),
} }
} }