jp.ms.common.modules 1.0.42 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/dto/app-table/card.dto.d.ts +1 -0
  2. package/dist/dto/app-table/card.dto.js +11 -0
  3. package/dist/dto/app-table/card.dto.js.map +1 -1
  4. package/dist/dto/app-table/player.dto.d.ts +1 -0
  5. package/dist/dto/app-table/player.dto.js +11 -0
  6. package/dist/dto/app-table/player.dto.js.map +1 -1
  7. package/dist/dto/games/fool/fool-table.dto.d.ts +1 -0
  8. package/dist/dto/games/fool/fool-table.dto.js +10 -0
  9. package/dist/dto/games/fool/fool-table.dto.js.map +1 -1
  10. package/dist/modules/events/events.gateway.js +4 -2
  11. package/dist/modules/events/events.gateway.js.map +1 -1
  12. package/dist/modules/main/main.controller.d.ts +0 -1
  13. package/dist/modules/main/main.controller.js +0 -12
  14. package/dist/modules/main/main.controller.js.map +1 -1
  15. package/dist/modules/main/main.service.d.ts +0 -1
  16. package/dist/modules/main/main.service.js +0 -13
  17. package/dist/modules/main/main.service.js.map +1 -1
  18. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +1 -0
  19. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +12 -0
  20. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
  21. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +6 -1
  22. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
  23. package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +4 -1
  24. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +18 -2
  25. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  26. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js +2 -0
  27. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js.map +1 -1
  28. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.d.ts +3 -2
  29. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js +9 -6
  30. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js.map +1 -1
  31. package/dist/modules/menu/menu-screen.view.d.ts +2 -1
  32. package/dist/modules/menu/menu-screen.view.js +9 -3
  33. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  34. package/dist/modules/menu/menu.interfaces.d.ts +1 -0
  35. package/dist/modules/menu/menu.service.js +1 -1
  36. package/dist/modules/menu/menu.service.js.map +1 -1
  37. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js +2 -0
  38. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js.map +1 -1
  39. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.d.ts +3 -2
  40. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js +9 -6
  41. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js.map +1 -1
  42. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +2 -0
  43. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -1
  44. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +3 -2
  45. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +8 -5
  46. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  47. package/dist/tsconfig.tsbuildinfo +1 -1
  48. package/dist/utils/game-table-result.d.ts +4 -3
  49. package/dist/utils/game-table-result.js +54 -4
  50. package/dist/utils/game-table-result.js.map +1 -1
  51. package/package.json +4 -4
  52. package/src/dto/app-table/card.dto.ts +9 -0
  53. package/src/dto/app-table/player.dto.ts +9 -0
  54. package/src/dto/games/fool/fool-table.dto.ts +8 -0
  55. package/src/modules/events/events.gateway.ts +4 -2
  56. package/src/modules/main/main.controller.ts +1 -22
  57. package/src/modules/main/main.service.ts +0 -29
  58. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +13 -0
  59. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +9 -1
  60. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +33 -0
  61. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +5 -0
  62. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +5 -3
  63. package/src/modules/menu/menu-screen.view.ts +9 -2
  64. package/src/modules/menu/menu.interfaces.ts +1 -0
  65. package/src/modules/menu/menu.service.ts +1 -0
  66. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +5 -0
  67. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +5 -3
  68. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +5 -0
  69. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +5 -3
  70. package/src/utils/game-table-result.ts +66 -5
@@ -1,5 +1,5 @@
1
1
  import { Connection } from 'mongoose';
2
- import { GameResultRepository, OneTableTournamentRoomsRepository, ManyTablesTournamentRoomsRepository, UsersRepository } from 'jp.db.schemas';
2
+ import { GameResultRepository, OneTableTournamentRoomsRepository, ManyTablesTournamentRoomsRepository, UsersRepository, RatingRepository } from 'jp.db.schemas';
3
3
  import { GameMaster, TournamentMaster } from 'jp.ms.common.engine';
4
4
  export declare function getGameTableResults(master: GameMaster): {
5
5
  gameType: string;
@@ -35,5 +35,6 @@ export declare function getGameTableResults(master: GameMaster): {
35
35
  }[];
36
36
  }[];
37
37
  };
38
- export declare function saveGameTablesResult(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository, saveNewBalance: boolean): Promise<void>;
39
- export declare function saveTournamentResult(master: TournamentMaster, connection: Connection, tournamentRepository: OneTableTournamentRoomsRepository | ManyTablesTournamentRoomsRepository, usersRepository: UsersRepository): Promise<void>;
38
+ export declare function saveGameTablesResultForSimpleRoom(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository, ratingRepository: RatingRepository): Promise<void>;
39
+ export declare function saveGameTablesResultForTournamentRoom(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository): Promise<void>;
40
+ export declare function saveTournamentResult(master: TournamentMaster, connection: Connection, tournamentRepository: OneTableTournamentRoomsRepository | ManyTablesTournamentRoomsRepository, usersRepository: UsersRepository, ratingRepository: RatingRepository): Promise<void>;
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGameTableResults = getGameTableResults;
4
- exports.saveGameTablesResult = saveGameTablesResult;
4
+ exports.saveGameTablesResultForSimpleRoom = saveGameTablesResultForSimpleRoom;
5
+ exports.saveGameTablesResultForTournamentRoom = saveGameTablesResultForTournamentRoom;
5
6
  exports.saveTournamentResult = saveTournamentResult;
6
7
  function getGameTableResults(master) {
7
8
  return {
@@ -48,14 +49,53 @@ function getGameTableResults(master) {
48
49
  })) ?? [],
49
50
  };
50
51
  }
51
- async function saveGameTablesResult(master, connection, gameResultRepository, usersRepository, saveNewBalance) {
52
+ async function saveGameTablesResultForSimpleRoom(master, connection, gameResultRepository, usersRepository, ratingRepository) {
52
53
  const userGameResult = master
53
54
  .getTable()
54
55
  .getPlayers()
55
56
  .map((player) => {
56
57
  return {
57
58
  userId: player.id,
58
- balanceAdding: saveNewBalance ? player.profit : 0,
59
+ userName: player.fullName,
60
+ userAvatarUrl: player.avatarUrl,
61
+ balanceAdding: player.profit,
62
+ experienceAdding: master.levelHelper.getNewExperienceAmount(player),
63
+ levelAdding: master.levelHelper.getNewLevelAdding(player.level, player.experience),
64
+ };
65
+ });
66
+ const ratings = userGameResult.map((item) => ({
67
+ userId: item.userId,
68
+ userName: item.userName,
69
+ userAvatarUrl: item.userAvatarUrl,
70
+ profit: item.balanceAdding,
71
+ game: master.getRoom().getGameType(),
72
+ }));
73
+ const session = await connection.startSession();
74
+ session.startTransaction();
75
+ try {
76
+ await gameResultRepository.createGameResult(getGameTableResults(master));
77
+ await usersRepository.saveGameResult(userGameResult);
78
+ await ratingRepository.addBulkPlayerRating(ratings);
79
+ await session.commitTransaction();
80
+ }
81
+ catch (error) {
82
+ await session.abortTransaction();
83
+ throw error;
84
+ }
85
+ finally {
86
+ await session.endSession();
87
+ }
88
+ }
89
+ async function saveGameTablesResultForTournamentRoom(master, connection, gameResultRepository, usersRepository) {
90
+ const userGameResult = master
91
+ .getTable()
92
+ .getPlayers()
93
+ .map((player) => {
94
+ return {
95
+ userId: player.id,
96
+ userName: player.fullName,
97
+ userAvatarUrl: player.avatarUrl,
98
+ balanceAdding: 0,
59
99
  experienceAdding: master.levelHelper.getNewExperienceAmount(player),
60
100
  levelAdding: master.levelHelper.getNewLevelAdding(player.level, player.experience),
61
101
  };
@@ -75,20 +115,30 @@ async function saveGameTablesResult(master, connection, gameResultRepository, us
75
115
  await session.endSession();
76
116
  }
77
117
  }
78
- async function saveTournamentResult(master, connection, tournamentRepository, usersRepository) {
118
+ async function saveTournamentResult(master, connection, tournamentRepository, usersRepository, ratingRepository) {
79
119
  const userTournamentResult = master.getTournamentResult().map((player) => {
80
120
  return {
81
121
  userId: player.playerId,
122
+ userName: player.playerName,
123
+ userAvatarUrl: player.playerAvatarUrl,
82
124
  balanceAdding: player.profit,
83
125
  experienceAdding: 0,
84
126
  levelAdding: 0,
85
127
  };
86
128
  });
129
+ const ratings = userTournamentResult.map((item) => ({
130
+ userId: item.userId,
131
+ userName: item.userName,
132
+ userAvatarUrl: item.userAvatarUrl,
133
+ profit: item.balanceAdding,
134
+ game: master.getRoom().getGameType(),
135
+ }));
87
136
  const session = await connection.startSession();
88
137
  session.startTransaction();
89
138
  try {
90
139
  await usersRepository.saveGameResult(userTournamentResult);
91
140
  await tournamentRepository.finishTournament(master.getTournamentId(), master.getTournamentResult());
141
+ await ratingRepository.addBulkPlayerRating(ratings);
92
142
  await session.commitTransaction();
93
143
  }
94
144
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jp.ms.common.modules",
3
- "version": "1.0.42",
3
+ "version": "1.0.43",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,10 +13,10 @@
13
13
  "@nestjs/mongoose": "11.0.4",
14
14
  "@nestjs/websockets": "11.1.9",
15
15
  "dayjs": "1.11.18",
16
- "jp.common.models": "1.1.45",
16
+ "jp.common.models": "1.1.50",
17
17
  "jp.common.utils": "1.0.6",
18
- "jp.db.schemas": "2.2.14",
19
- "jp.ms.common.engine": "3.0.25",
18
+ "jp.db.schemas": "2.2.16",
19
+ "jp.ms.common.engine": "3.0.26",
20
20
  "mongoose": "9.1.5",
21
21
  "nestjs-i18n": "10.5.1",
22
22
  "node-schedule": "2.1.1",
@@ -51,4 +51,13 @@ export class CardDto implements IAppTableCard {
51
51
  @Type(() => Number)
52
52
  @Expose()
53
53
  targets: Array<number>;
54
+
55
+ @ApiProperty({
56
+ description: 'skin',
57
+ required: true,
58
+ type: String,
59
+ })
60
+ @Expose()
61
+ @IsString()
62
+ skin: string;
54
63
  }
@@ -31,6 +31,15 @@ export class PlayerDto implements IAppTablePlayer {
31
31
  @IsString()
32
32
  avatarUrl: string;
33
33
 
34
+ @ApiProperty({
35
+ description: 'avatar frame',
36
+ required: true,
37
+ type: String,
38
+ })
39
+ @Expose()
40
+ @IsString()
41
+ avatarFrame: string;
42
+
34
43
  @ApiProperty({
35
44
  description: 'stack',
36
45
  required: true,
@@ -47,6 +47,14 @@ export class FoolTableDto implements IFoolTable {
47
47
  @Expose()
48
48
  tableSize: number;
49
49
 
50
+ @ApiProperty({
51
+ description: 'Table cards skin',
52
+ type: Number,
53
+ })
54
+ @IsNumber()
55
+ @Expose()
56
+ tableCardsSkin: string;
57
+
50
58
  @IsArray()
51
59
  @ValidateNested({ each: true })
52
60
  @Type(() => FoolPlayerDto)
@@ -40,12 +40,14 @@ export class EventsGateway
40
40
  if (user) {
41
41
  const player = this.options.createPlayer({
42
42
  id: user.userId,
43
- fullName: user.fullName,
44
- avatarUrl: user.avatarUrl,
43
+ fullName: user.publicFullName,
44
+ avatarUrl: user.publicAvatarUrl,
45
+ avatarFrame: user.avatarFrame,
45
46
  balance: user.balance,
46
47
  experience: user.experience,
47
48
  level: user.level,
48
49
  language: user.normalizedLang,
50
+ cardsSkin: user.cardSkin,
49
51
  onSendWsMessage: this.handleSendWsMessage,
50
52
  onGotWsMessageClientResponse: this.handleGotWsMessageClientResponse,
51
53
  });
@@ -1,12 +1,4 @@
1
- import {
2
- Controller,
3
- Get,
4
- Headers,
5
- HttpCode,
6
- HttpStatus,
7
- Param,
8
- Post,
9
- } from '@nestjs/common';
1
+ import { Controller, Get, Headers } from '@nestjs/common';
10
2
  import { IAppHeaders } from 'jp.common.models';
11
3
 
12
4
  import {
@@ -56,17 +48,4 @@ export class MainController {
56
48
  headers.client_language,
57
49
  );
58
50
  }
59
-
60
- @Post('many_tables_tournament/buy_ticket/:tournamentId')
61
- @HttpCode(HttpStatus.OK)
62
- buyTicket(
63
- @Param('tournamentId') tournamentId: string,
64
- @Headers() headers: IAppHeaders,
65
- ): Promise<BaseAppScreenDto> {
66
- return this.mainService.manyTablesTournamentbBuyTicket(
67
- headers.client_auth_token,
68
- headers.client_language,
69
- tournamentId,
70
- );
71
- }
72
51
  }
@@ -29,7 +29,6 @@ import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tourname
29
29
  import { EventsBusMainTablesSubscribeService } from '../event-bus/events-bus.main-tables.subscribe.service';
30
30
  import {
31
31
  ErrorCodeEnum,
32
- NotEnoughMoneyForPurchaseException,
33
32
  NotFoundFreeRoomForFastGameException,
34
33
  } from '../../exception';
35
34
 
@@ -152,32 +151,4 @@ export class MainService {
152
151
  player.id,
153
152
  );
154
153
  }
155
-
156
- async manyTablesTournamentbBuyTicket(
157
- clientAuthToken: string,
158
- lang: string,
159
- tournamentId: string,
160
- ): Promise<BaseAppScreenDto> {
161
- const player = this.playersManager.getPlayerById(clientAuthToken);
162
- const tournament =
163
- this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
164
- const user = await this.usersRepository.findById(player?.id ?? '');
165
-
166
- if (!player || !tournament || !user) {
167
- throw new InternalServerErrorException();
168
- }
169
-
170
- if (user.balance < tournament.getTicketPrice()) {
171
- throw new NotEnoughMoneyForPurchaseException(
172
- new ErrorSnackbarComponent(
173
- ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
174
- this.options.i18n.t('common.server.message.code.4004', { lang }),
175
- ),
176
- );
177
- }
178
-
179
- await this.manyTablesRoomsManagerService.buyTicket(tournamentId, player);
180
-
181
- return this.getScreen(lang, clientAuthToken);
182
- }
183
154
  }
@@ -148,4 +148,17 @@ export class ManyTablesTournamentController {
148
148
  removeTournament(@Param('tournamentId') tournamentId: string): Promise<void> {
149
149
  return this.tournamentService.removeTournament(tournamentId);
150
150
  }
151
+
152
+ @Post('many_tables_tournament/buy_ticket/:tournamentId')
153
+ @HttpCode(HttpStatus.OK)
154
+ buyTicket(
155
+ @Param('tournamentId') tournamentId: string,
156
+ @Headers() headers: IAppHeaders,
157
+ ): Promise<void> {
158
+ return this.tournamentService.manyTablesTournamentbBuyTicket(
159
+ headers.client_auth_token,
160
+ headers.client_language,
161
+ tournamentId,
162
+ );
163
+ }
151
164
  }
@@ -4,6 +4,9 @@ import {
4
4
  ManyTablesTournamentRoom,
5
5
  ManyTablesTournamentRoomSchema,
6
6
  ManyTablesTournamentRoomsRepository,
7
+ User,
8
+ UserSchema,
9
+ UsersRepository,
7
10
  } from 'jp.db.schemas';
8
11
  import {
9
12
  GamePlayer,
@@ -27,9 +30,14 @@ import { ManyTablesTournamentModuleOptions } from './many-tables-tournament.inte
27
30
  schema: ManyTablesTournamentRoomSchema,
28
31
  },
29
32
  ]),
33
+ MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
30
34
  ],
31
35
  controllers: [ManyTablesTournamentController],
32
- providers: [ManyTablesTournamentService, ManyTablesTournamentRoomsRepository],
36
+ providers: [
37
+ ManyTablesTournamentService,
38
+ ManyTablesTournamentRoomsRepository,
39
+ UsersRepository,
40
+ ],
33
41
  })
34
42
  export class ManyTablesTournamentModule {
35
43
  constructor(
@@ -7,11 +7,13 @@ import {
7
7
  IBaseMoveData,
8
8
  IAppTableState,
9
9
  AppScreenRouter,
10
+ ErrorSnackbarComponent,
10
11
  } from 'jp.common.models';
11
12
  import {
12
13
  ManyTablesTournamentMaster,
13
14
  TournamentMaster,
14
15
  } from 'jp.ms.common.engine';
16
+ import { UsersRepository } from 'jp.db.schemas';
15
17
 
16
18
  import { BaseAppScreenDto } from '../../dto';
17
19
  import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
@@ -19,6 +21,10 @@ import { PlayersManagerService } from '../players-manager/players-manager.servic
19
21
  import { JoinTournamentDto } from '../../dto/common/join-tournament.dto';
20
22
  import { ManyTablesTournamentCreateDto } from '../../dto/common/many-tables-tournament-create.dto';
21
23
  import { ManyTablesTournamentUpdateDto } from '../../dto/common/many-tables-tournament-update.dto';
24
+ import {
25
+ NotEnoughMoneyForPurchaseException,
26
+ ErrorCodeEnum,
27
+ } from '../../exception';
22
28
 
23
29
  import { ManyTablesTournamentFactoryOptions } from './many-tables-tournament.interfaces';
24
30
  import { MANY_TABLES_TOURNAMENT_OPTIONS } from './many-tables-tournament.constants';
@@ -32,6 +38,7 @@ export class ManyTablesTournamentService {
32
38
  private readonly playersManager: PlayersManagerService,
33
39
  @Inject(MANY_TABLES_TOURNAMENT_OPTIONS)
34
40
  private readonly options: ManyTablesTournamentFactoryOptions,
41
+ private readonly usersRepository: UsersRepository,
35
42
  ) {}
36
43
 
37
44
  getStatusScreen(tournamentId: string, lang: string): BaseAppScreenDto {
@@ -205,4 +212,30 @@ export class ManyTablesTournamentService {
205
212
  async removeTournament(tournamentId: string) {
206
213
  return this.manyTablesRoomsManagerService.removeTournament(tournamentId);
207
214
  }
215
+
216
+ async manyTablesTournamentbBuyTicket(
217
+ clientAuthToken: string,
218
+ lang: string,
219
+ tournamentId: string,
220
+ ): Promise<void> {
221
+ const player = this.playersManager.getPlayerById(clientAuthToken);
222
+ const tournament =
223
+ this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
224
+ const user = await this.usersRepository.findById(player?.id ?? '');
225
+
226
+ if (!player || !tournament || !user) {
227
+ throw new InternalServerErrorException();
228
+ }
229
+
230
+ if (user.balance < tournament.getTicketPrice()) {
231
+ throw new NotEnoughMoneyForPurchaseException(
232
+ new ErrorSnackbarComponent(
233
+ ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
234
+ this.options.i18n.t('common.server.message.code.4004', { lang }),
235
+ ),
236
+ );
237
+ }
238
+
239
+ await this.manyTablesRoomsManagerService.buyTicket(tournamentId, player);
240
+ }
208
241
  }
@@ -19,6 +19,9 @@ import {
19
19
  Purchase,
20
20
  PurchaseSchema,
21
21
  PurchaseRepository,
22
+ Rating,
23
+ RatingSchema,
24
+ RatingRepository,
22
25
  } from 'jp.db.schemas';
23
26
 
24
27
  import { ManyTablesTournamentRoomsManagerService } from './many-tables-tournament-rooms-manager.service';
@@ -42,6 +45,7 @@ import { ManyTablesTournamentRoomsFactoryOptions } from './many-tables-tournamen
42
45
  MongooseModule.forFeature([
43
46
  { name: GameResult.name, schema: GameResultSchema },
44
47
  ]),
48
+ MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
45
49
  ],
46
50
  providers: [
47
51
  ManyTablesTournamentRoomsRepository,
@@ -49,6 +53,7 @@ import { ManyTablesTournamentRoomsFactoryOptions } from './many-tables-tournamen
49
53
  ManyTablesTournamentRoomsManagerService,
50
54
  GameResultRepository,
51
55
  PurchaseRepository,
56
+ RatingRepository,
52
57
  ],
53
58
  exports: [ManyTablesTournamentRoomsManagerService],
54
59
  })
@@ -31,10 +31,11 @@ import {
31
31
  ManyTablesTournamentRoomDocument,
32
32
  ManyTablesTournamentRoomsRepository,
33
33
  UsersRepository,
34
+ RatingRepository,
34
35
  } from 'jp.db.schemas';
35
36
 
36
37
  import {
37
- saveGameTablesResult,
38
+ saveGameTablesResultForTournamentRoom,
38
39
  saveTournamentResult,
39
40
  } from '../../utils/game-table-result';
40
41
  import { JpLoggerService } from '../logger';
@@ -59,6 +60,7 @@ export class ManyTablesTournamentRoomsManagerService {
59
60
  private readonly usersRepository: UsersRepository,
60
61
  private readonly gameResultRepository: GameResultRepository,
61
62
  private readonly purchaseRepository: PurchaseRepository,
63
+ private readonly ratingRepository: RatingRepository,
62
64
  private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
63
65
  private readonly eventsBusManyTablesTournamentSubscribeService: EventsBusManyTablesTournamentSubscribeService,
64
66
  @Inject(MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS)
@@ -259,12 +261,11 @@ export class ManyTablesTournamentRoomsManagerService {
259
261
  };
260
262
 
261
263
  private handleRoomTableGameFinished = async (master: GameMaster) => {
262
- await saveGameTablesResult(
264
+ await saveGameTablesResultForTournamentRoom(
263
265
  master,
264
266
  this.connection,
265
267
  this.gameResultRepository,
266
268
  this.usersRepository,
267
- false,
268
269
  );
269
270
  };
270
271
 
@@ -282,6 +283,7 @@ export class ManyTablesTournamentRoomsManagerService {
282
283
  this.connection,
283
284
  this.tournamentRepository,
284
285
  this.usersRepository,
286
+ this.ratingRepository,
285
287
  );
286
288
  };
287
289
 
@@ -18,16 +18,19 @@ import { Banner, Menu } from 'jp.db.schemas';
18
18
  export class MenuScreenView extends UniversalScreenView {
19
19
  private readonly menuItems: Array<Menu>;
20
20
  private readonly banner: Banner | null;
21
+ private gameType: string;
21
22
 
22
23
  constructor(
23
24
  localeService: ILocaleService,
24
25
  lang: string,
26
+ gameType: string,
25
27
  menuItems: Array<Menu>,
26
28
  banner: Banner | null,
27
29
  ) {
28
30
  super(localeService, lang);
29
31
  this.menuItems = menuItems;
30
32
  this.banner = banner;
33
+ this.gameType = gameType;
31
34
  }
32
35
 
33
36
  build(): IAppScreen {
@@ -56,7 +59,9 @@ export class MenuScreenView extends UniversalScreenView {
56
59
  new BannerSectionListItemComponent(
57
60
  this.banner.bannerId,
58
61
  this.getDbResource(this.banner.title),
59
- this.localeService.t('common.menu.header.title', { lang: this.lang }),
62
+ this.localeService.t(`${this.gameType}.menu.header.title`, {
63
+ lang: this.lang,
64
+ }),
60
65
  new UrlImageComponent(this.banner.image),
61
66
  this.banner.link,
62
67
  ),
@@ -65,7 +70,9 @@ export class MenuScreenView extends UniversalScreenView {
65
70
 
66
71
  return new MenuHeaderSectionComponent(
67
72
  'header',
68
- this.localeService.t('common.menu.header.title', { lang: this.lang }),
73
+ this.localeService.t(`${this.gameType}.menu.header.title`, {
74
+ lang: this.lang,
75
+ }),
69
76
  );
70
77
  }
71
78
  }
@@ -14,4 +14,5 @@ export interface MenuModuleOptions extends Pick<ModuleMetadata, 'imports'> {
14
14
 
15
15
  export interface MenuFactoryOptions {
16
16
  i18n: I18nService;
17
+ gameType: string;
17
18
  }
@@ -31,6 +31,7 @@ export class MenuService {
31
31
  new MenuScreenView(
32
32
  this.options.i18n,
33
33
  headers.client_language,
34
+ this.options.gameType,
34
35
  menuItems,
35
36
  enabledBanner,
36
37
  ).buildBS(),
@@ -10,6 +10,9 @@ import {
10
10
  GameResult,
11
11
  GameResultSchema,
12
12
  GameResultRepository,
13
+ Rating,
14
+ RatingSchema,
15
+ RatingRepository,
13
16
  } from 'jp.db.schemas';
14
17
 
15
18
  import { OneTableTournamentRoomsManagerService } from './one-table-tournament-rooms-manager.service';
@@ -29,12 +32,14 @@ import { ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS } from './one-table-tourname
29
32
  MongooseModule.forFeature([
30
33
  { name: GameResult.name, schema: GameResultSchema },
31
34
  ]),
35
+ MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
32
36
  ],
33
37
  providers: [
34
38
  OneTableTournamentRoomsRepository,
35
39
  UsersRepository,
36
40
  OneTableTournamentRoomsManagerService,
37
41
  GameResultRepository,
42
+ RatingRepository,
38
43
  ],
39
44
  exports: [OneTableTournamentRoomsManagerService],
40
45
  })
@@ -20,6 +20,7 @@ import {
20
20
  GameResultRepository,
21
21
  OneTableTournamentRoomDocument,
22
22
  OneTableTournamentRoomsRepository,
23
+ RatingRepository,
23
24
  UsersRepository,
24
25
  } from 'jp.db.schemas';
25
26
  import { InjectConnection } from '@nestjs/mongoose';
@@ -27,7 +28,7 @@ import { Connection } from 'mongoose';
27
28
 
28
29
  import { JpLoggerService } from '../logger/jp-logger.service';
29
30
  import {
30
- saveGameTablesResult,
31
+ saveGameTablesResultForTournamentRoom,
31
32
  saveTournamentResult,
32
33
  } from '../../utils/game-table-result';
33
34
  import {
@@ -46,6 +47,7 @@ export class OneTableTournamentRoomsManagerService {
46
47
  private readonly tournamentRepository: OneTableTournamentRoomsRepository,
47
48
  private readonly usersRepository: UsersRepository,
48
49
  private readonly gameResultRepository: GameResultRepository,
50
+ private readonly ratingRepository: RatingRepository,
49
51
  private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
50
52
  private readonly eventsBusOneTableTournamentSubscribeService: EventsBusOneTableTournamentSubscribeService,
51
53
  @Inject(ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS)
@@ -163,12 +165,11 @@ export class OneTableTournamentRoomsManagerService {
163
165
  };
164
166
 
165
167
  private handleRoomTableGameFinished = async (master: GameMaster) => {
166
- await saveGameTablesResult(
168
+ await saveGameTablesResultForTournamentRoom(
167
169
  master,
168
170
  this.connection,
169
171
  this.gameResultRepository,
170
172
  this.usersRepository,
171
- false,
172
173
  );
173
174
  };
174
175
 
@@ -210,6 +211,7 @@ export class OneTableTournamentRoomsManagerService {
210
211
  this.connection,
211
212
  this.tournamentRepository,
212
213
  this.usersRepository,
214
+ this.ratingRepository,
213
215
  );
214
216
  };
215
217
 
@@ -10,6 +10,9 @@ import {
10
10
  GameResult,
11
11
  GameResultSchema,
12
12
  GameResultRepository,
13
+ Rating,
14
+ RatingSchema,
15
+ RatingRepository,
13
16
  } from 'jp.db.schemas';
14
17
 
15
18
  import { SimpleRoomsManagerService } from './simple-rooms-manager.service';
@@ -26,11 +29,13 @@ import { SIMPLE_ROOMS_MANAGER_OPTIONS } from './simple-rooms-manager.constants';
26
29
  MongooseModule.forFeature([
27
30
  { name: GameResult.name, schema: GameResultSchema },
28
31
  ]),
32
+ MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
29
33
  ],
30
34
  providers: [
31
35
  SimpleRoomsRepository,
32
36
  UsersRepository,
33
37
  GameResultRepository,
38
+ RatingRepository,
34
39
  SimpleRoomsManagerService,
35
40
  ],
36
41
  exports: [SimpleRoomsManagerService],
@@ -16,13 +16,14 @@ import {
16
16
  } from 'jp.ms.common.engine';
17
17
  import {
18
18
  GameResultRepository,
19
+ RatingRepository,
19
20
  SimpleRoomDocument,
20
21
  SimpleRoomsRepository,
21
22
  UsersRepository,
22
23
  } from 'jp.db.schemas';
23
24
 
24
25
  import { JpLoggerService } from '../logger/jp-logger.service';
25
- import { saveGameTablesResult } from '../../utils/game-table-result';
26
+ import { saveGameTablesResultForSimpleRoom } from '../../utils/game-table-result';
26
27
  import { EventsBusMainTablesSubscribeService } from '../event-bus/events-bus.main-tables.subscribe.service';
27
28
  import { EventsBusAppSubscribeService } from '../event-bus/events-bus.app.subscribe.service';
28
29
 
@@ -37,6 +38,7 @@ export class SimpleRoomsManagerService {
37
38
  private readonly roomsRepository: SimpleRoomsRepository,
38
39
  private readonly usersRepository: UsersRepository,
39
40
  private readonly gameResultRepository: GameResultRepository,
41
+ private readonly ratingRepository: RatingRepository,
40
42
  private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
41
43
  private readonly eventsBusAppSubscribeService: EventsBusAppSubscribeService,
42
44
  @Inject(SIMPLE_ROOMS_MANAGER_OPTIONS)
@@ -170,12 +172,12 @@ export class SimpleRoomsManagerService {
170
172
  };
171
173
 
172
174
  private handleRoomTableGameFinished = async (master: GameMaster) => {
173
- await saveGameTablesResult(
175
+ await saveGameTablesResultForSimpleRoom(
174
176
  master,
175
177
  this.connection,
176
178
  this.gameResultRepository,
177
179
  this.usersRepository,
178
- true,
180
+ this.ratingRepository,
179
181
  );
180
182
 
181
183
  // TODO: записать разные события для достижений