schizofour-coulombot/src/callback_queries/vote_callback.ts

38 lines
1.0 KiB
TypeScript

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)
});
};