Now altering messages where possible

This commit is contained in:
2023-07-29 10:19:22 +03:00
parent 426a4736ce
commit 5c14a77f29
13 changed files with 122 additions and 68 deletions

View File

@ -8,22 +8,23 @@ async fn get_master_pass(
msg: Message,
db: DatabaseConnection,
dialogue: MainDialogue,
ids: MessageIds,
mut ids: MessageIds,
name: String,
login: String,
password: String,
master_pass: String,
) -> crate::Result<()> {
ids.delete(&bot).await;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
dialogue.exit().await?;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
let account = spawn_blocking(move || {
account::ActiveModel::from_unencrypted(user_id, name, &login, &password, &master_pass)
})
.await??;
account.insert(&db).await?;
bot.send_message(msg.chat.id, "Success")
.reply_markup(deletion_markup())
ids.alter_message(&bot, "Success", deletion_markup(), None)
.await?;
Ok(())
}

View File

@ -7,18 +7,23 @@ async fn get_master_pass(
msg: Message,
db: DatabaseConnection,
dialogue: MainDialogue,
ids: MessageIds,
mut ids: MessageIds,
name: String,
_: String,
) -> crate::Result<()> {
ids.delete(&bot).await;
dialogue.exit().await?;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
Account::delete_by_id((user_id, name)).exec(&db).await?;
bot.send_message(msg.chat.id, "The account is successfully deleted")
.reply_markup(deletion_markup())
.await?;
ids.alter_message(
&bot,
"The account is successfully deleted",
deletion_markup(),
None,
)
.await?;
Ok(())
}

View File

@ -10,10 +10,9 @@ async fn get_master_pass(
msg: Message,
db: DatabaseConnection,
dialogue: MainDialogue,
ids: MessageIds,
mut ids: MessageIds,
_: String,
) -> crate::Result<()> {
ids.delete(&bot).await;
dialogue.exit().await?;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
let txn = db.begin().await?;
@ -32,8 +31,7 @@ async fn get_master_pass(
"Something went wrong. Try again later"
}
};
bot.send_message(msg.chat.id, text)
.reply_markup(deletion_markup())
ids.alter_message(&bot, text, deletion_markup(), None)
.await?;
Ok(())
}

View File

@ -26,6 +26,8 @@ async fn get_master_pass(
ids: MessageIds,
master_pass: String,
) -> crate::Result<()> {
dialogue.exit().await?;
ids.delete(&bot).await;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
let mut accounts = Vec::new();
@ -51,7 +53,6 @@ async fn get_master_pass(
bot.send_document(msg.chat.id, file)
.reply_markup(deletion_markup())
.await?;
dialogue.exit().await?;
Ok(())
}

View File

@ -8,14 +8,14 @@ async fn get_master_pass(
msg: Message,
db: DatabaseConnection,
dialogue: MainDialogue,
ids: MessageIds,
mut ids: MessageIds,
name: String,
master_pass: String,
) -> crate::Result<()> {
ids.delete(&bot).await;
dialogue.exit().await?;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
let account = match Account::get(user_id, &name, &db).await? {
Some(account) => account,
None => {
@ -25,11 +25,11 @@ async fn get_master_pass(
return Ok(());
}
};
let (login, password) = spawn_blocking(move || account.decrypt(&master_pass)).await??;
let message = format!("Name:\n`{name}`\nLogin:\n`{login}`\nPassword:\n`{password}`");
bot.send_message(msg.chat.id, message)
.reply_markup(deletion_markup())
.parse_mode(ParseMode::MarkdownV2)
let text = format!("Name:\n`{name}`\nLogin:\n`{login}`\nPassword:\n`{password}`");
ids.alter_message(&bot, text, deletion_markup(), ParseMode::MarkdownV2)
.await?;
Ok(())
}

View File

@ -31,11 +31,12 @@ async fn get_master_pass(
msg: Message,
db: DatabaseConnection,
dialogue: MainDialogue,
ids: MessageIds,
mut ids: MessageIds,
user: User,
master_pass: String,
) -> crate::Result<()> {
ids.delete(&bot).await;
dialogue.exit().await?;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
let mut failed = Vec::new();
@ -50,7 +51,7 @@ async fn get_master_pass(
.await;
}
let message = if failed.is_empty() {
let text = if failed.is_empty() {
"Success".to_owned()
} else {
format!(
@ -58,10 +59,8 @@ async fn get_master_pass(
failed.into_iter().format("\n")
)
};
bot.send_message(msg.chat.id, message)
.reply_markup(deletion_markup())
ids.alter_message(&bot, text, deletion_markup(), None)
.await?;
dialogue.exit().await?;
Ok(())
}

View File

@ -7,10 +7,9 @@ async fn get_master_pass(
msg: Message,
db: DatabaseConnection,
dialogue: MainDialogue,
ids: MessageIds,
mut ids: MessageIds,
master_pass: String,
) -> crate::Result<()> {
ids.delete(&bot).await;
dialogue.exit().await?;
let user_id = msg.from().ok_or(NoUserInfo)?.id.0;
@ -18,8 +17,7 @@ async fn get_master_pass(
spawn_blocking(move || master_pass::ActiveModel::from_unencrypted(user_id, &master_pass))
.await?;
model.insert(&db).await?;
bot.send_message(msg.chat.id, "Success")
.reply_markup(deletion_markup())
ids.alter_message(&bot, "Success", deletion_markup(), None)
.await?;
Ok(())
}
@ -44,7 +42,7 @@ pub async fn set_master_pass(
change_state!(
dialogue,
previous,
&previous,
(),
State::GetNewMasterPass,
get_master_pass