From 8326e819c7f3c46ba4e53c4bff1534da9edb6312 Mon Sep 17 00:00:00 2001 From: Akulij Date: Fri, 2 May 2025 13:23:47 +0300 Subject: [PATCH] change create_callback_button to accept Callback instead of CallbackInfo reason: its more convinient for this function and and ability to create CallbackInfo with literal --- src/main.rs | 14 ++++---------- src/utils.rs | 6 ++++-- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index 67fc8df..7187190 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,7 +15,7 @@ use crate::mongodb_storage::MongodbStorage; use chrono::{DateTime, Utc}; use chrono_tz::Asia; -use db::DbError; +use db::{DbError, Literal}; use envconfig::Envconfig; use serde::{Deserialize, Serialize}; use teloxide::dispatching::dialogue::serializer::Json; @@ -281,8 +281,7 @@ async fn callback_handler(bot: Bot, mut db: DB, q: CallbackQuery) -> BotResult<( match callback { Callback::MoreInfo => { let keyboard = Some(single_button_markup!( - create_callback_button("go_home", CallbackStore::new(Callback::GoHome), &mut db,) - .await? + create_callback_button("go_home", Callback::GoHome, &mut db).await? )); replace_message( @@ -788,15 +787,10 @@ async fn replace_message( async fn make_start_buttons(db: &mut DB) -> BotResult { let mut buttons: Vec> = Vec::new(); buttons.push(vec![ - create_callback_button( - "show_projects", - CallbackStore::new(Callback::ProjectPage { id: 1 }), - db, - ) - .await?, + create_callback_button("show_projects", Callback::ProjectPage { id: 1 }, db).await?, ]); buttons.push(vec![ - create_callback_button("more_info", CallbackStore::new(Callback::MoreInfo), db).await?, + create_callback_button("more_info", Callback::MoreInfo, db).await?, ]); Ok(InlineKeyboardMarkup::new(buttons)) diff --git a/src/utils.rs b/src/utils.rs index 68aae54..ef02d66 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -30,7 +30,7 @@ macro_rules! stacked_buttons_markup { pub async fn create_callback_button( literal: &str, - ci: CallbackInfo, + callback: C, db: &mut D, ) -> BotResult where @@ -41,7 +41,9 @@ where .get_literal_value(literal) .await? .unwrap_or("Please, set content of this message".into()); - let ci = ci.store(db).await?; + let ci = CallbackInfo::new_with_literal(callback, literal.to_string()) + .store(db) + .await?; Ok(InlineKeyboardButton::new( text,