import {Logger} from "@nestjs/common"; import {ClientProxy} from "@nestjs/microservices"; export class TGHandlers { static async handleCallback(ctx:any, logger: Logger, gameService: ClientProxy) { let data = undefined; try { data = JSON.parse(ctx.update.callback_query.data); } catch(error) { logger.verbose(`[onInlineQuery]: can't parse json callback, checking content for other payload`); } if(data) { gameService.emit({ cmd: 'ApplyDebuff'}, { ...ctx.callbackQuery, from: ctx.from.id }); await ctx.editMessageReplyMarkup(undefined); await ctx.editMessageText(ctx.update.callback_query.data); } if(ctx.update.callback_query.message.text.indexOf('Внимание') !== -1) { const answer =ctx.update.callback_query.data; gameService.emit({ cmd: "QuestionAnswer"}, { user: ctx.from.id, answer: answer, name: ctx.from.first_name }); try { await ctx.editMessageReplyMarkup(undefined); } catch (err) { } await ctx.editMessageText(answer); } else if(ctx.update.callback_query.data.startsWith('card/')) { const cardtoplay = ctx.update.callback_query.data.substring('card/'.length); gameService.emit({cmd: 'CardPlayed'}, {text: cardtoplay, user: ctx.update.callback_query.from.id}) await ctx.editMessageReplyMarkup(undefined); await ctx.editMessageText("карта выбрана"); } else { console.log(ctx.update); } } }