25 lines
991 B
TypeScript
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,
|
|
);
|
|
}
|
|
}
|