tgd-backend/src/game/comand-handlers/give-out-a-prize-command.handler.ts

25 lines
991 B
TypeScript

import { CommandHandler, ICommandHandler } from '@nestjs/cqrs';
import { GiveOutAPrizeCommand } from '../commands/give-out-a-prize.command';
import { GameService } from '../game.service';
import { Logger } from '@nestjs/common';
import { GameQueueTypes } from '../../schemas/game-queue.schema';
import {GuestsService} from "../../guests/guests.service";
@CommandHandler(GiveOutAPrizeCommand)
export class GameGiveOutAPrizeCommandHandler
implements ICommandHandler<GiveOutAPrizeCommand> {
private readonly logger = new Logger(GameGiveOutAPrizeCommandHandler.name);
constructor(private gameService: GameService, private guestService: GuestsService) {
}
async execute(command: GiveOutAPrizeCommand): Promise<any> {
this.logger.verbose(`Player winning a prize ${command.telegramId}`);
await this.guestService.incrementPrizeCount(command.telegramId);
return this.gameService.addTaskToGameQueue(
command.telegramId,
GameQueueTypes.giveOutAPrize,
);
}
}