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
This commit is contained in:
parent
a3c9cd1bb8
commit
8326e819c7
14
src/main.rs
14
src/main.rs
@ -15,7 +15,7 @@ use crate::mongodb_storage::MongodbStorage;
|
|||||||
|
|
||||||
use chrono::{DateTime, Utc};
|
use chrono::{DateTime, Utc};
|
||||||
use chrono_tz::Asia;
|
use chrono_tz::Asia;
|
||||||
use db::DbError;
|
use db::{DbError, Literal};
|
||||||
use envconfig::Envconfig;
|
use envconfig::Envconfig;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use teloxide::dispatching::dialogue::serializer::Json;
|
use teloxide::dispatching::dialogue::serializer::Json;
|
||||||
@ -281,8 +281,7 @@ async fn callback_handler(bot: Bot, mut db: DB, q: CallbackQuery) -> BotResult<(
|
|||||||
match callback {
|
match callback {
|
||||||
Callback::MoreInfo => {
|
Callback::MoreInfo => {
|
||||||
let keyboard = Some(single_button_markup!(
|
let keyboard = Some(single_button_markup!(
|
||||||
create_callback_button("go_home", CallbackStore::new(Callback::GoHome), &mut db,)
|
create_callback_button("go_home", Callback::GoHome, &mut db).await?
|
||||||
.await?
|
|
||||||
));
|
));
|
||||||
|
|
||||||
replace_message(
|
replace_message(
|
||||||
@ -788,15 +787,10 @@ async fn replace_message(
|
|||||||
async fn make_start_buttons(db: &mut DB) -> BotResult<InlineKeyboardMarkup> {
|
async fn make_start_buttons(db: &mut DB) -> BotResult<InlineKeyboardMarkup> {
|
||||||
let mut buttons: Vec<Vec<InlineKeyboardButton>> = Vec::new();
|
let mut buttons: Vec<Vec<InlineKeyboardButton>> = Vec::new();
|
||||||
buttons.push(vec![
|
buttons.push(vec![
|
||||||
create_callback_button(
|
create_callback_button("show_projects", Callback::ProjectPage { id: 1 }, db).await?,
|
||||||
"show_projects",
|
|
||||||
CallbackStore::new(Callback::ProjectPage { id: 1 }),
|
|
||||||
db,
|
|
||||||
)
|
|
||||||
.await?,
|
|
||||||
]);
|
]);
|
||||||
buttons.push(vec![
|
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))
|
Ok(InlineKeyboardMarkup::new(buttons))
|
||||||
|
|||||||
@ -30,7 +30,7 @@ macro_rules! stacked_buttons_markup {
|
|||||||
|
|
||||||
pub async fn create_callback_button<C, D>(
|
pub async fn create_callback_button<C, D>(
|
||||||
literal: &str,
|
literal: &str,
|
||||||
ci: CallbackInfo<C>,
|
callback: C,
|
||||||
db: &mut D,
|
db: &mut D,
|
||||||
) -> BotResult<InlineKeyboardButton>
|
) -> BotResult<InlineKeyboardButton>
|
||||||
where
|
where
|
||||||
@ -41,7 +41,9 @@ where
|
|||||||
.get_literal_value(literal)
|
.get_literal_value(literal)
|
||||||
.await?
|
.await?
|
||||||
.unwrap_or("Please, set content of this message".into());
|
.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(
|
Ok(InlineKeyboardButton::new(
|
||||||
text,
|
text,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user