import { Bot, Context } from "grammy"; import { CHANNEL_ID } from "../config/mod.ts"; import { BotContext } from "../mod.ts"; import { getPostOutcomeKeyboard, IButtonCallbackData, } from "../keyboards/mod.ts"; import { CallbackQueryEnum } from "./mod.ts"; import { getChatIdFromSession } from "../session/mod.ts"; export const voteCallback = async ( ctx: Context, bot: Bot<BotContext>, callbackQueryData: IButtonCallbackData, ) => { await ctx.answerCallbackQuery(); if (!callbackQueryData.sid) return; const isApproved = callbackQueryData.cq === CallbackQueryEnum.APPROVE; if (isApproved) { await ctx.copyMessage(CHANNEL_ID); bot.api.sendMessage( getChatIdFromSession(callbackQueryData.sid), "Post Approvato", ); } else { bot.api.sendMessage( getChatIdFromSession(callbackQueryData.sid), "Post Rifiutato", ); } // edit the message to show the outcome of approval await ctx.editMessageReplyMarkup({ reply_markup: getPostOutcomeKeyboard(isApproved) }); };