use sea_orm::prelude::*; use teloxide::{adaptors::Throttle, prelude::*}; use crate::{ errors::NoMessageText, handlers::{markups::deletion_markup, utils::validate_field, MainDialogue, PackagedHandler}, }; pub async fn get_password( bot: Throttle, msg: Message, db: DatabaseConnection, dialogue: MainDialogue, next: PackagedHandler, ) -> crate::Result<()> { let text = msg.text().ok_or(NoMessageText)?.trim().to_owned(); super::generic::generic( bot, text, msg, db, dialogue, |bot, msg, _, password| { Box::pin(async move { let is_valid = validate_field(password); if !is_valid { bot.send_message(msg.chat.id, "Invalid password") .reply_markup(deletion_markup()) .await?; } Ok(is_valid) }) }, next, ) .await }