From 08fa0563e7c1ceb887a688676c688cf5d859a9a5 Mon Sep 17 00:00:00 2001 From: Kirill Ivlev Date: Thu, 31 Oct 2024 14:08:31 +0400 Subject: [PATCH] TGD-23 --- .../increase-player-score-command.handler.ts | 19 +++++++++++++++++++ .../command/increase-player-score.command.ts | 4 ++++ src/guests/guests.module.ts | 2 ++ src/quiz/quiz.controller.ts | 1 - src/quiz/quiz.service.ts | 7 +++---- 5 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 src/guests/command/handlers/increase-player-score-command.handler.ts create mode 100644 src/guests/command/increase-player-score.command.ts diff --git a/src/guests/command/handlers/increase-player-score-command.handler.ts b/src/guests/command/handlers/increase-player-score-command.handler.ts new file mode 100644 index 0000000..bce1dde --- /dev/null +++ b/src/guests/command/handlers/increase-player-score-command.handler.ts @@ -0,0 +1,19 @@ +import {CommandHandler, ICommandHandler} from "@nestjs/cqrs"; +import {IncreasePlayerScoreCommand} from "../increase-player-score.command"; +import { Logger } from "@nestjs/common"; +import {GuestsService} from "../../guests.service"; + +@CommandHandler(IncreasePlayerScoreCommand) +export class IncreasePlayerScoreCommandHandler implements ICommandHandler { + private logger = new Logger(IncreasePlayerScoreCommandHandler.name); + constructor(private guestService: GuestsService) { + } + + + async execute(command: IncreasePlayerScoreCommand): Promise { + this.logger.verbose(`IncreasePlayerScoreCommandHandler: entering, arguments: player: ${command.user}, amount: ${command.score}`); + await this.guestService.updatePlayerScore(command.user, command.score); + return true; + } + +} \ No newline at end of file diff --git a/src/guests/command/increase-player-score.command.ts b/src/guests/command/increase-player-score.command.ts new file mode 100644 index 0000000..7e87c36 --- /dev/null +++ b/src/guests/command/increase-player-score.command.ts @@ -0,0 +1,4 @@ +export class IncreasePlayerScoreCommand { + constructor(public user: number, public score: number) { + } +} \ No newline at end of file diff --git a/src/guests/guests.module.ts b/src/guests/guests.module.ts index 95e776f..5b5de11 100644 --- a/src/guests/guests.module.ts +++ b/src/guests/guests.module.ts @@ -25,6 +25,7 @@ import {SetGuestPropertyCommandHandler} from "./command/handlers/set-guest-prope import {WrongAnswerReceivedGuestEventHandler} from "./event-handlers/wrong-answer-received-guest-event.handler"; import {VoiceService} from "../voice/voice.service"; import {VoiceModule} from "../voice/voice.module"; +import {IncreasePlayerScoreCommandHandler} from "./command/handlers/increase-player-score-command.handler"; const commandHandlers = [ GuestsRemoveKeyboardHandler, @@ -32,6 +33,7 @@ const commandHandlers = [ IncreasePlayerWinningRateCommandHandler, GetGuestPropertyHandler, SetGuestPropertyCommandHandler, + IncreasePlayerScoreCommandHandler, ]; diff --git a/src/quiz/quiz.controller.ts b/src/quiz/quiz.controller.ts index 17980e6..a0d850c 100644 --- a/src/quiz/quiz.controller.ts +++ b/src/quiz/quiz.controller.ts @@ -23,7 +23,6 @@ export class QuizController { @Post('proceed') async Get() { - console.log('proceed with game') return this.quizService.proceedWithGame(); } diff --git a/src/quiz/quiz.service.ts b/src/quiz/quiz.service.ts index 0178dea..821c573 100644 --- a/src/quiz/quiz.service.ts +++ b/src/quiz/quiz.service.ts @@ -16,6 +16,7 @@ import {CreateNewQueueItemCommand} from "../game/commands/create-new-queue-item. import {GameQueueTypes} from "../schemas/game-queue.schema"; import {IncreasePlayerWinningRateCommand} from "../game/commands/increase-player-winning-rate.command"; import {SocketEvents} from "../shared/events.consts"; +import {IncreasePlayerScoreCommand} from "../guests/command/increase-player-score.command"; @Injectable({ scope: Scope.TRANSIENT }) export class QuizService { @@ -79,9 +80,7 @@ export class QuizService { valid: isAnswerValid, time: new Date() }) - console.log(question); await question.save(); - console.log(question); this.logger.verbose("question saved with user details") if (question.valid === filtered) { //question.answered = true; @@ -136,7 +135,6 @@ export class QuizService { time: answer.time.getTime() } }); - console.log(playerAnswers); const sortedAnswers = playerAnswers.sort((a, b) => a.time - b.time); const winner = sortedAnswers.find((answer) => answer.valid); let targetUser = 0; @@ -144,7 +142,8 @@ export class QuizService { const totalWinningScore = 80; sortedAnswers.filter(x => x.valid).forEach((answer) => { this.commandBus.execute(new IncreasePlayerWinningRateCommand(answer.user, - totalWinningScore / sortedAnswers.filter((answer) => answer.valid).length)) + totalWinningScore / sortedAnswers.filter((answer) => answer.valid).length)); + this.commandBus.execute(new IncreasePlayerScoreCommand(answer.user,1)); }); await this.commandBus.execute(new IncreasePlayerWinningRateCommand(sortedAnswers[0].user, 15)); targetUser = winner.user;