38 lines
1.0 KiB
TypeScript
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)
|
|
});
|
|
};
|