TGD-23
This commit is contained in:
parent
75080c29bb
commit
08fa0563e7
5 changed files with 28 additions and 5 deletions
|
|
@ -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<IncreasePlayerScoreCommand> {
|
||||
private logger = new Logger(IncreasePlayerScoreCommandHandler.name);
|
||||
constructor(private guestService: GuestsService) {
|
||||
}
|
||||
|
||||
|
||||
async execute(command: IncreasePlayerScoreCommand): Promise<any> {
|
||||
this.logger.verbose(`IncreasePlayerScoreCommandHandler: entering, arguments: player: ${command.user}, amount: ${command.score}`);
|
||||
await this.guestService.updatePlayerScore(command.user, command.score);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
4
src/guests/command/increase-player-score.command.ts
Normal file
4
src/guests/command/increase-player-score.command.ts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
export class IncreasePlayerScoreCommand {
|
||||
constructor(public user: number, public score: number) {
|
||||
}
|
||||
}
|
||||
|
|
@ -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,
|
||||
];
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ export class QuizController {
|
|||
|
||||
@Post('proceed')
|
||||
async Get() {
|
||||
console.log('proceed with game')
|
||||
return this.quizService.proceedWithGame();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue