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 {WrongAnswerReceivedGuestEventHandler} from "./event-handlers/wrong-answer-received-guest-event.handler";
|
||||||
import {VoiceService} from "../voice/voice.service";
|
import {VoiceService} from "../voice/voice.service";
|
||||||
import {VoiceModule} from "../voice/voice.module";
|
import {VoiceModule} from "../voice/voice.module";
|
||||||
|
import {IncreasePlayerScoreCommandHandler} from "./command/handlers/increase-player-score-command.handler";
|
||||||
|
|
||||||
const commandHandlers = [
|
const commandHandlers = [
|
||||||
GuestsRemoveKeyboardHandler,
|
GuestsRemoveKeyboardHandler,
|
||||||
|
|
@ -32,6 +33,7 @@ const commandHandlers = [
|
||||||
IncreasePlayerWinningRateCommandHandler,
|
IncreasePlayerWinningRateCommandHandler,
|
||||||
GetGuestPropertyHandler,
|
GetGuestPropertyHandler,
|
||||||
SetGuestPropertyCommandHandler,
|
SetGuestPropertyCommandHandler,
|
||||||
|
IncreasePlayerScoreCommandHandler,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ export class QuizController {
|
||||||
|
|
||||||
@Post('proceed')
|
@Post('proceed')
|
||||||
async Get() {
|
async Get() {
|
||||||
console.log('proceed with game')
|
|
||||||
return this.quizService.proceedWithGame();
|
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 {GameQueueTypes} from "../schemas/game-queue.schema";
|
||||||
import {IncreasePlayerWinningRateCommand} from "../game/commands/increase-player-winning-rate.command";
|
import {IncreasePlayerWinningRateCommand} from "../game/commands/increase-player-winning-rate.command";
|
||||||
import {SocketEvents} from "../shared/events.consts";
|
import {SocketEvents} from "../shared/events.consts";
|
||||||
|
import {IncreasePlayerScoreCommand} from "../guests/command/increase-player-score.command";
|
||||||
|
|
||||||
@Injectable({ scope: Scope.TRANSIENT })
|
@Injectable({ scope: Scope.TRANSIENT })
|
||||||
export class QuizService {
|
export class QuizService {
|
||||||
|
|
@ -79,9 +80,7 @@ export class QuizService {
|
||||||
valid: isAnswerValid,
|
valid: isAnswerValid,
|
||||||
time: new Date()
|
time: new Date()
|
||||||
})
|
})
|
||||||
console.log(question);
|
|
||||||
await question.save();
|
await question.save();
|
||||||
console.log(question);
|
|
||||||
this.logger.verbose("question saved with user details")
|
this.logger.verbose("question saved with user details")
|
||||||
if (question.valid === filtered) {
|
if (question.valid === filtered) {
|
||||||
//question.answered = true;
|
//question.answered = true;
|
||||||
|
|
@ -136,7 +135,6 @@ export class QuizService {
|
||||||
time: answer.time.getTime()
|
time: answer.time.getTime()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log(playerAnswers);
|
|
||||||
const sortedAnswers = playerAnswers.sort((a, b) => a.time - b.time);
|
const sortedAnswers = playerAnswers.sort((a, b) => a.time - b.time);
|
||||||
const winner = sortedAnswers.find((answer) => answer.valid);
|
const winner = sortedAnswers.find((answer) => answer.valid);
|
||||||
let targetUser = 0;
|
let targetUser = 0;
|
||||||
|
|
@ -144,7 +142,8 @@ export class QuizService {
|
||||||
const totalWinningScore = 80;
|
const totalWinningScore = 80;
|
||||||
sortedAnswers.filter(x => x.valid).forEach((answer) => {
|
sortedAnswers.filter(x => x.valid).forEach((answer) => {
|
||||||
this.commandBus.execute(new IncreasePlayerWinningRateCommand(answer.user,
|
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));
|
await this.commandBus.execute(new IncreasePlayerWinningRateCommand(sortedAnswers[0].user, 15));
|
||||||
targetUser = winner.user;
|
targetUser = winner.user;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue