use crate::{ entity::{account, prelude::*}, handlers::{utils::package_handler, MainDialogue, State}, }; use sea_orm::prelude::*; use teloxide::{adaptors::Throttle, prelude::*}; async fn get_master_pass( bot: Throttle, msg: Message, db: DatabaseConnection, dialogue: MainDialogue, previous: Message, ) -> crate::Result<()> { let _ = bot.delete_message(previous.chat.id, previous.id).await; dialogue.exit().await?; let user_id = msg.from().unwrap().id.0; Account::delete_many() .filter(account::Column::UserId.eq(user_id)) .exec(&db) .await?; MasterPass::delete_by_id(user_id).exec(&db).await?; bot.send_message(msg.chat.id, "Everything was deleted") .await?; Ok(()) } pub async fn delete_all( bot: Throttle, msg: Message, dialogue: MainDialogue, ) -> crate::Result<()> { let previous = bot .send_message( msg.chat.id, "Send master password to delete EVERYTHING.\nTHIS ACTION IS IRREVERSIBLE", ) .await?; dialogue .update(State::GetMasterPass(package_handler( move |bot, msg, db, dialogue, _| get_master_pass(bot, msg, db, dialogue, previous), ))) .await?; Ok(()) }