jp.ms.common.modules 1.0.40 → 1.0.41

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 (163) hide show
  1. package/dist/dto/app-table/bids-panel-item.dto.d.ts +6 -0
  2. package/dist/dto/app-table/bids-panel-item.dto.js +52 -0
  3. package/dist/dto/app-table/bids-panel-item.dto.js.map +1 -0
  4. package/dist/dto/app-table/bids-panel.dto.d.ts +7 -0
  5. package/dist/dto/app-table/bids-panel.dto.js +50 -0
  6. package/dist/dto/app-table/bids-panel.dto.js.map +1 -0
  7. package/dist/dto/app-table/index.d.ts +2 -0
  8. package/dist/dto/app-table/index.js +5 -1
  9. package/dist/dto/app-table/index.js.map +1 -1
  10. package/dist/dto/games/poker/poker-table.dto.d.ts +2 -1
  11. package/dist/dto/games/poker/poker-table.dto.js +6 -0
  12. package/dist/dto/games/poker/poker-table.dto.js.map +1 -1
  13. package/dist/modules/base-achievements/base-achievements.module.js +3 -3
  14. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  15. package/dist/modules/main/main.service.js +1 -1
  16. package/dist/modules/menu/menu-screen.view.js +1 -1
  17. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  18. package/dist/modules/menu/menu.service.js +1 -1
  19. package/dist/modules/menu/menu.service.js.map +1 -1
  20. package/dist/tsconfig.tsbuildinfo +1 -1
  21. package/package.json +57 -57
  22. package/src/dto/app-screen/app-screen-app-bar.dto.ts +36 -36
  23. package/src/dto/app-screen/app-screen-dialog.dto.ts +64 -64
  24. package/src/dto/app-screen/app-screen-field-list-item.dto.ts +42 -42
  25. package/src/dto/app-screen/app-screen-field.dto.ts +59 -59
  26. package/src/dto/app-screen/app-screen-section-button.dto.ts +60 -60
  27. package/src/dto/app-screen/app-screen-section-buttons.dto.ts +14 -14
  28. package/src/dto/app-screen/app-screen-section-image.dto.ts +33 -33
  29. package/src/dto/app-screen/app-screen-section-list-item.dto.ts +105 -105
  30. package/src/dto/app-screen/app-screen-section-req.dto.ts +33 -33
  31. package/src/dto/app-screen/app-screen-section.dto.ts +76 -76
  32. package/src/dto/app-screen/app-screen.dto.ts +50 -50
  33. package/src/dto/app-screen/base-app-screen.dto.ts +16 -16
  34. package/src/dto/app-screen/index.ts +10 -10
  35. package/src/dto/app-table/bids-panel-item.dto.ts +33 -0
  36. package/src/dto/app-table/bids-panel.dto.ts +32 -0
  37. package/src/dto/app-table/card.dto.ts +54 -54
  38. package/src/dto/app-table/cards-deck.dto.ts +22 -22
  39. package/src/dto/app-table/cards-pair-slots-item.dto.ts +45 -45
  40. package/src/dto/app-table/cards-pair-slots.dto.ts +13 -13
  41. package/src/dto/app-table/cards-panel.dto.ts +48 -48
  42. package/src/dto/app-table/cards-player.dto.ts +14 -14
  43. package/src/dto/app-table/cards-slots-item.dto.ts +40 -40
  44. package/src/dto/app-table/cards-slots.dto.ts +13 -13
  45. package/src/dto/app-table/index.ts +15 -13
  46. package/src/dto/app-table/moves-panel-button.dto.ts +24 -24
  47. package/src/dto/app-table/moves-panel.dto.ts +23 -23
  48. package/src/dto/app-table/player.dto.ts +69 -69
  49. package/src/dto/app-table/summary-item.dto.ts +51 -51
  50. package/src/dto/app-table/summary.dto.ts +13 -13
  51. package/src/dto/common/find-free-table.dto.ts +3 -3
  52. package/src/dto/common/index.ts +2 -2
  53. package/src/dto/common/join-tournament.dto.ts +33 -33
  54. package/src/dto/common/log.dto.ts +9 -9
  55. package/src/dto/common/many-tables-tournament-create.dto.ts +125 -125
  56. package/src/dto/common/many-tables-tournament-update.dto.ts +3 -3
  57. package/src/dto/common/player-check-state.dto.ts +33 -33
  58. package/src/dto/common/player-connected.dto.ts +58 -58
  59. package/src/dto/games/fool/fool-player.dto.ts +3 -3
  60. package/src/dto/games/fool/fool-table.dto.ts +81 -81
  61. package/src/dto/games/index.ts +2 -2
  62. package/src/dto/games/poker/poker-player.dto.ts +3 -3
  63. package/src/dto/games/poker/poker-table.dto.ts +81 -76
  64. package/src/dto/index.ts +4 -4
  65. package/src/exception/error-code.enum.ts +4 -4
  66. package/src/exception/global-exception-filter.ts +53 -53
  67. package/src/exception/http-exception-wth-snackbar.ts +27 -27
  68. package/src/exception/index.ts +4 -4
  69. package/src/exception/not-enough-money-for-purchase.exception.ts +14 -14
  70. package/src/exception/not-found-free-room-for-fast-game.exception.ts +14 -14
  71. package/src/index.ts +4 -4
  72. package/src/modules/anti-freeze-system/anti-freeze-system.constants.ts +1 -1
  73. package/src/modules/anti-freeze-system/anti-freeze-system.interfaces.ts +20 -20
  74. package/src/modules/anti-freeze-system/anti-freeze-system.module.ts +55 -55
  75. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +105 -105
  76. package/src/modules/anti-freeze-system/index.ts +1 -1
  77. package/src/modules/base-achievements/base-achievements.module.ts +322 -322
  78. package/src/modules/base-achievements/index.ts +1 -1
  79. package/src/modules/event-bus/events-bus.app.subscribe.service.ts +20 -20
  80. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +34 -34
  81. package/src/modules/event-bus/events-bus.many-tables-tournament.subscribe.service.ts +6 -6
  82. package/src/modules/event-bus/events-bus.module.ts +23 -23
  83. package/src/modules/event-bus/events-bus.one-table-tournament.subscribe.service.ts +6 -6
  84. package/src/modules/event-bus/events-bus.tournament.subscribe.service.ts +18 -18
  85. package/src/modules/event-bus/index.ts +5 -5
  86. package/src/modules/events/events.constants.ts +1 -1
  87. package/src/modules/events/events.gateway.ts +70 -70
  88. package/src/modules/events/events.interfaces.ts +17 -17
  89. package/src/modules/events/events.module.ts +32 -32
  90. package/src/modules/events/index.ts +1 -1
  91. package/src/modules/index.ts +27 -27
  92. package/src/modules/logger/index.ts +2 -2
  93. package/src/modules/logger/jp-logger.module.ts +10 -10
  94. package/src/modules/logger/jp-logger.service.ts +38 -38
  95. package/src/modules/main/index.ts +1 -1
  96. package/src/modules/main/main-tables-list-screen.view.ts +275 -275
  97. package/src/modules/main/main.constants.ts +1 -1
  98. package/src/modules/main/main.controller.ts +72 -72
  99. package/src/modules/main/main.interfaces.ts +17 -17
  100. package/src/modules/main/main.module.ts +73 -73
  101. package/src/modules/main/main.service.ts +183 -183
  102. package/src/modules/many-tables-tournament/index.ts +1 -1
  103. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +143 -143
  104. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +63 -63
  105. package/src/modules/many-tables-tournament/many-tables-tournament.constants.ts +3 -3
  106. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +151 -151
  107. package/src/modules/many-tables-tournament/many-tables-tournament.interfaces.ts +20 -20
  108. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +80 -80
  109. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +208 -208
  110. package/src/modules/many-tables-tournament-rooms-manager/index.ts +2 -2
  111. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.constants.ts +3 -3
  112. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.interfaces.ts +37 -37
  113. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +84 -84
  114. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +331 -331
  115. package/src/modules/menu/index.ts +1 -1
  116. package/src/modules/menu/menu-screen.view.ts +71 -71
  117. package/src/modules/menu/menu.constants.ts +1 -1
  118. package/src/modules/menu/menu.controller.ts +16 -16
  119. package/src/modules/menu/menu.interfaces.ts +17 -17
  120. package/src/modules/menu/menu.module.ts +39 -39
  121. package/src/modules/menu/menu.service.ts +39 -35
  122. package/src/modules/one-table-tournament/index.ts +1 -1
  123. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +166 -166
  124. package/src/modules/one-table-tournament/one-table-tournament.constants.ts +3 -3
  125. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +104 -104
  126. package/src/modules/one-table-tournament/one-table-tournament.interfaces.ts +20 -20
  127. package/src/modules/one-table-tournament/one-table-tournament.module.ts +76 -76
  128. package/src/modules/one-table-tournament/one-table-tournament.service.ts +146 -146
  129. package/src/modules/one-table-tournament-rooms-manager/index.ts +2 -2
  130. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.constants.ts +3 -3
  131. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.interfaces.ts +31 -31
  132. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +66 -66
  133. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +220 -220
  134. package/src/modules/players-manager/index.ts +2 -2
  135. package/src/modules/players-manager/players-manager.module.ts +9 -9
  136. package/src/modules/players-manager/players-manager.service.ts +27 -27
  137. package/src/modules/simple-rooms/index.ts +1 -1
  138. package/src/modules/simple-rooms/simple-rooms.constants.ts +1 -1
  139. package/src/modules/simple-rooms/simple-rooms.controller.ts +63 -63
  140. package/src/modules/simple-rooms/simple-rooms.interfaces.ts +20 -20
  141. package/src/modules/simple-rooms/simple-rooms.module.ts +39 -39
  142. package/src/modules/simple-rooms/simple-rooms.service.ts +95 -95
  143. package/src/modules/simple-rooms-manager/index.ts +2 -2
  144. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +3 -3
  145. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +26 -26
  146. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +60 -60
  147. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +190 -190
  148. package/src/modules/support/dump.service.ts +11 -11
  149. package/src/modules/support/index.ts +1 -1
  150. package/src/modules/support/metric.service.ts +41 -41
  151. package/src/modules/support/support.constants.ts +1 -1
  152. package/src/modules/support/support.controller.ts +79 -79
  153. package/src/modules/support/support.interfaces.ts +16 -16
  154. package/src/modules/support/support.module.ts +35 -35
  155. package/src/modules/support/support.service.ts +27 -27
  156. package/src/utils/date.ts +7 -7
  157. package/src/utils/game-table-result.ts +129 -129
  158. package/src/views/index.ts +5 -5
  159. package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +37 -37
  160. package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +37 -37
  161. package/src/views/simple-room-conifrm-exit-dialog.view.ts +37 -37
  162. package/src/views/table-summary.view.ts +104 -104
  163. package/src/views/tournament-buy-ticket-dialog.view.ts +34 -34
@@ -1,208 +1,208 @@
1
- import {
2
- Inject,
3
- Injectable,
4
- InternalServerErrorException,
5
- } from '@nestjs/common';
6
- import {
7
- IBaseMoveData,
8
- IAppTableState,
9
- AppScreenRouter,
10
- } from 'jp.common.models';
11
- import {
12
- ManyTablesTournamentMaster,
13
- TournamentMaster,
14
- } from 'jp.ms.common.engine';
15
-
16
- import { BaseAppScreenDto } from '../../dto';
17
- import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
18
- import { PlayersManagerService } from '../players-manager/players-manager.service';
19
- import { JoinTournamentDto } from '../../dto/common/join-tournament.dto';
20
- import { ManyTablesTournamentCreateDto } from '../../dto/common/many-tables-tournament-create.dto';
21
- import { ManyTablesTournamentUpdateDto } from '../../dto/common/many-tables-tournament-update.dto';
22
-
23
- import { ManyTablesTournamentFactoryOptions } from './many-tables-tournament.interfaces';
24
- import { MANY_TABLES_TOURNAMENT_OPTIONS } from './many-tables-tournament.constants';
25
- import { ManyTablesTournamentStatusScreenView } from './many-tables-tournament-status-screen.view';
26
- import { ManyTablesTournamentTablesListScreenView } from './many-tables-tournament-tables-list-screen.view';
27
-
28
- @Injectable()
29
- export class ManyTablesTournamentService {
30
- constructor(
31
- private readonly manyTablesRoomsManagerService: ManyTablesTournamentRoomsManagerService,
32
- private readonly playersManager: PlayersManagerService,
33
- @Inject(MANY_TABLES_TOURNAMENT_OPTIONS)
34
- private readonly options: ManyTablesTournamentFactoryOptions,
35
- ) {}
36
-
37
- getStatusScreen(tournamentId: string, lang: string): BaseAppScreenDto {
38
- const tournament =
39
- this.manyTablesRoomsManagerService.getRoomById(tournamentId);
40
-
41
- if (!tournament) {
42
- throw new InternalServerErrorException();
43
- }
44
-
45
- return new BaseAppScreenDto(
46
- new ManyTablesTournamentStatusScreenView(
47
- this.options.i18n,
48
- lang,
49
- tournament,
50
- ).buildBS(),
51
- );
52
- }
53
-
54
- subscribeOnStatusScreen(tournamentId: string, clientAuthToken: string): void {
55
- const player = this.playersManager.getPlayerById(clientAuthToken);
56
- const tournament =
57
- this.manyTablesRoomsManagerService.getRoomById(tournamentId);
58
-
59
- if (!player || !tournament) {
60
- throw new InternalServerErrorException();
61
- }
62
-
63
- tournament.addToStatusScreenWatchers(player);
64
- }
65
-
66
- unsubscribeFromStatusScreen(
67
- tournamentId: string,
68
- clientAuthToken: string,
69
- ): void {
70
- const player = this.playersManager.getPlayerById(clientAuthToken);
71
- const tournament =
72
- this.manyTablesRoomsManagerService.getRoomById(tournamentId);
73
-
74
- if (!player || !tournament) {
75
- throw new InternalServerErrorException();
76
- }
77
-
78
- tournament.removeFromStatusScreenWatchers(player);
79
- }
80
-
81
- getTableListScreen(tournamentId: string, lang: string): BaseAppScreenDto {
82
- const tournament =
83
- this.manyTablesRoomsManagerService.getRoomById(tournamentId);
84
-
85
- if (!tournament) {
86
- throw new InternalServerErrorException();
87
- }
88
-
89
- return new BaseAppScreenDto(
90
- new ManyTablesTournamentTablesListScreenView(
91
- this.options.i18n,
92
- lang,
93
- tournament,
94
- ).buildBS(),
95
- );
96
- }
97
-
98
- watchTheTable(tableId: string, clientAuthToken: string): IAppTableState {
99
- const player = this.playersManager.getPlayerById(clientAuthToken);
100
- const room = this.manyTablesRoomsManagerService.getRoomByTableId(tableId);
101
- const master = room?.getMasterById(tableId);
102
-
103
- if (player && room && master) {
104
- room.handleWatchTheTable(player, tableId);
105
-
106
- return master.createGameStateDto(player);
107
- }
108
-
109
- throw new InternalServerErrorException();
110
- }
111
-
112
- moveOnTheTable(
113
- tableId: string,
114
- clientAuthToken: string,
115
- moveDto: IBaseMoveData,
116
- ): IAppTableState {
117
- const player = this.playersManager.getPlayerById(clientAuthToken);
118
- const room = this.manyTablesRoomsManagerService.getRoomByTableId(tableId);
119
- const master = room?.getMasterById(tableId);
120
-
121
- if (player && room && master) {
122
- room.handleMoveOnTheTable(player, tableId, moveDto);
123
-
124
- return master.createGameStateDto(player);
125
- }
126
-
127
- throw new InternalServerErrorException();
128
- }
129
-
130
- joinTournament(
131
- tournamentId: string,
132
- clientAuthToken: string,
133
- ): JoinTournamentDto {
134
- const player = this.playersManager.getPlayerById(clientAuthToken);
135
- const tournament =
136
- this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
137
-
138
- if (player && tournament) {
139
- tournament.handleJoinTournament(player);
140
-
141
- if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
142
- if (player.isPlayer() || player.isTableQueuer()) {
143
- return JoinTournamentDto.fromEntities(
144
- AppScreenRouter.getManyTablesTournamentTablePath(
145
- player.tableId ?? '',
146
- ),
147
- player.id,
148
- );
149
- } else if (tournament.isParticipant(player.id)) {
150
- tournament
151
- .getRoomMaster<ManyTablesTournamentMaster>()
152
- .onTournamentProcessAlonePlayer(tournament.getRoomMaster(), player);
153
-
154
- return JoinTournamentDto.fromEntities(
155
- AppScreenRouter.getManyTablesTournamentTablePath(
156
- player.tableId ?? '',
157
- ),
158
- player.id,
159
- );
160
- } else {
161
- return JoinTournamentDto.fromEntities(
162
- AppScreenRouter.getManyTablesTournamentTableListPath(tournamentId),
163
- player.id,
164
- );
165
- }
166
- } else {
167
- return JoinTournamentDto.fromEntities(
168
- AppScreenRouter.getManyTablesTournamentStatusPath(tournament.getId()),
169
- player.id,
170
- );
171
- }
172
- }
173
-
174
- throw new InternalServerErrorException();
175
- }
176
-
177
- leaveTournament(tournamentId: string, clientAuthToken: string): void {
178
- const player = this.playersManager.getPlayerById(clientAuthToken);
179
- const tournament =
180
- this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
181
-
182
- if (!player || !tournament) {
183
- throw new InternalServerErrorException();
184
- }
185
-
186
- tournament.handleLeaveTournament(player);
187
- }
188
-
189
- async createTournament(createTournamentDto: ManyTablesTournamentCreateDto) {
190
- return this.manyTablesRoomsManagerService.createTournament(
191
- createTournamentDto,
192
- );
193
- }
194
-
195
- async updateTournament(
196
- tournamentId: string,
197
- updateTournamentDto: ManyTablesTournamentUpdateDto,
198
- ) {
199
- return this.manyTablesRoomsManagerService.updateTournament(
200
- tournamentId,
201
- updateTournamentDto,
202
- );
203
- }
204
-
205
- async removeTournament(tournamentId: string) {
206
- return this.manyTablesRoomsManagerService.removeTournament(tournamentId);
207
- }
208
- }
1
+ import {
2
+ Inject,
3
+ Injectable,
4
+ InternalServerErrorException,
5
+ } from '@nestjs/common';
6
+ import {
7
+ IBaseMoveData,
8
+ IAppTableState,
9
+ AppScreenRouter,
10
+ } from 'jp.common.models';
11
+ import {
12
+ ManyTablesTournamentMaster,
13
+ TournamentMaster,
14
+ } from 'jp.ms.common.engine';
15
+
16
+ import { BaseAppScreenDto } from '../../dto';
17
+ import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
18
+ import { PlayersManagerService } from '../players-manager/players-manager.service';
19
+ import { JoinTournamentDto } from '../../dto/common/join-tournament.dto';
20
+ import { ManyTablesTournamentCreateDto } from '../../dto/common/many-tables-tournament-create.dto';
21
+ import { ManyTablesTournamentUpdateDto } from '../../dto/common/many-tables-tournament-update.dto';
22
+
23
+ import { ManyTablesTournamentFactoryOptions } from './many-tables-tournament.interfaces';
24
+ import { MANY_TABLES_TOURNAMENT_OPTIONS } from './many-tables-tournament.constants';
25
+ import { ManyTablesTournamentStatusScreenView } from './many-tables-tournament-status-screen.view';
26
+ import { ManyTablesTournamentTablesListScreenView } from './many-tables-tournament-tables-list-screen.view';
27
+
28
+ @Injectable()
29
+ export class ManyTablesTournamentService {
30
+ constructor(
31
+ private readonly manyTablesRoomsManagerService: ManyTablesTournamentRoomsManagerService,
32
+ private readonly playersManager: PlayersManagerService,
33
+ @Inject(MANY_TABLES_TOURNAMENT_OPTIONS)
34
+ private readonly options: ManyTablesTournamentFactoryOptions,
35
+ ) {}
36
+
37
+ getStatusScreen(tournamentId: string, lang: string): BaseAppScreenDto {
38
+ const tournament =
39
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
40
+
41
+ if (!tournament) {
42
+ throw new InternalServerErrorException();
43
+ }
44
+
45
+ return new BaseAppScreenDto(
46
+ new ManyTablesTournamentStatusScreenView(
47
+ this.options.i18n,
48
+ lang,
49
+ tournament,
50
+ ).buildBS(),
51
+ );
52
+ }
53
+
54
+ subscribeOnStatusScreen(tournamentId: string, clientAuthToken: string): void {
55
+ const player = this.playersManager.getPlayerById(clientAuthToken);
56
+ const tournament =
57
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
58
+
59
+ if (!player || !tournament) {
60
+ throw new InternalServerErrorException();
61
+ }
62
+
63
+ tournament.addToStatusScreenWatchers(player);
64
+ }
65
+
66
+ unsubscribeFromStatusScreen(
67
+ tournamentId: string,
68
+ clientAuthToken: string,
69
+ ): void {
70
+ const player = this.playersManager.getPlayerById(clientAuthToken);
71
+ const tournament =
72
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
73
+
74
+ if (!player || !tournament) {
75
+ throw new InternalServerErrorException();
76
+ }
77
+
78
+ tournament.removeFromStatusScreenWatchers(player);
79
+ }
80
+
81
+ getTableListScreen(tournamentId: string, lang: string): BaseAppScreenDto {
82
+ const tournament =
83
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
84
+
85
+ if (!tournament) {
86
+ throw new InternalServerErrorException();
87
+ }
88
+
89
+ return new BaseAppScreenDto(
90
+ new ManyTablesTournamentTablesListScreenView(
91
+ this.options.i18n,
92
+ lang,
93
+ tournament,
94
+ ).buildBS(),
95
+ );
96
+ }
97
+
98
+ watchTheTable(tableId: string, clientAuthToken: string): IAppTableState {
99
+ const player = this.playersManager.getPlayerById(clientAuthToken);
100
+ const room = this.manyTablesRoomsManagerService.getRoomByTableId(tableId);
101
+ const master = room?.getMasterById(tableId);
102
+
103
+ if (player && room && master) {
104
+ room.handleWatchTheTable(player, tableId);
105
+
106
+ return master.createGameStateDto(player);
107
+ }
108
+
109
+ throw new InternalServerErrorException();
110
+ }
111
+
112
+ moveOnTheTable(
113
+ tableId: string,
114
+ clientAuthToken: string,
115
+ moveDto: IBaseMoveData,
116
+ ): IAppTableState {
117
+ const player = this.playersManager.getPlayerById(clientAuthToken);
118
+ const room = this.manyTablesRoomsManagerService.getRoomByTableId(tableId);
119
+ const master = room?.getMasterById(tableId);
120
+
121
+ if (player && room && master) {
122
+ room.handleMoveOnTheTable(player, tableId, moveDto);
123
+
124
+ return master.createGameStateDto(player);
125
+ }
126
+
127
+ throw new InternalServerErrorException();
128
+ }
129
+
130
+ joinTournament(
131
+ tournamentId: string,
132
+ clientAuthToken: string,
133
+ ): JoinTournamentDto {
134
+ const player = this.playersManager.getPlayerById(clientAuthToken);
135
+ const tournament =
136
+ this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
137
+
138
+ if (player && tournament) {
139
+ tournament.handleJoinTournament(player);
140
+
141
+ if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
142
+ if (player.isPlayer() || player.isTableQueuer()) {
143
+ return JoinTournamentDto.fromEntities(
144
+ AppScreenRouter.getManyTablesTournamentTablePath(
145
+ player.tableId ?? '',
146
+ ),
147
+ player.id,
148
+ );
149
+ } else if (tournament.isParticipant(player.id)) {
150
+ tournament
151
+ .getRoomMaster<ManyTablesTournamentMaster>()
152
+ .onTournamentProcessAlonePlayer(tournament.getRoomMaster(), player);
153
+
154
+ return JoinTournamentDto.fromEntities(
155
+ AppScreenRouter.getManyTablesTournamentTablePath(
156
+ player.tableId ?? '',
157
+ ),
158
+ player.id,
159
+ );
160
+ } else {
161
+ return JoinTournamentDto.fromEntities(
162
+ AppScreenRouter.getManyTablesTournamentTableListPath(tournamentId),
163
+ player.id,
164
+ );
165
+ }
166
+ } else {
167
+ return JoinTournamentDto.fromEntities(
168
+ AppScreenRouter.getManyTablesTournamentStatusPath(tournament.getId()),
169
+ player.id,
170
+ );
171
+ }
172
+ }
173
+
174
+ throw new InternalServerErrorException();
175
+ }
176
+
177
+ leaveTournament(tournamentId: string, clientAuthToken: string): void {
178
+ const player = this.playersManager.getPlayerById(clientAuthToken);
179
+ const tournament =
180
+ this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
181
+
182
+ if (!player || !tournament) {
183
+ throw new InternalServerErrorException();
184
+ }
185
+
186
+ tournament.handleLeaveTournament(player);
187
+ }
188
+
189
+ async createTournament(createTournamentDto: ManyTablesTournamentCreateDto) {
190
+ return this.manyTablesRoomsManagerService.createTournament(
191
+ createTournamentDto,
192
+ );
193
+ }
194
+
195
+ async updateTournament(
196
+ tournamentId: string,
197
+ updateTournamentDto: ManyTablesTournamentUpdateDto,
198
+ ) {
199
+ return this.manyTablesRoomsManagerService.updateTournament(
200
+ tournamentId,
201
+ updateTournamentDto,
202
+ );
203
+ }
204
+
205
+ async removeTournament(tournamentId: string) {
206
+ return this.manyTablesRoomsManagerService.removeTournament(tournamentId);
207
+ }
208
+ }
@@ -1,2 +1,2 @@
1
- export { ManyTablesTournamentRoomsManagerModule } from './many-tables-tournament-rooms-manager.module';
2
- export { ManyTablesTournamentRoomsManagerService } from './many-tables-tournament-rooms-manager.service';
1
+ export { ManyTablesTournamentRoomsManagerModule } from './many-tables-tournament-rooms-manager.module';
2
+ export { ManyTablesTournamentRoomsManagerService } from './many-tables-tournament-rooms-manager.service';
@@ -1,3 +1,3 @@
1
- export const MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS = Symbol(
2
- 'MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS',
3
- );
1
+ export const MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS = Symbol(
2
+ 'MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS',
3
+ );
@@ -1,37 +1,37 @@
1
- import { ModuleMetadata } from '@nestjs/common';
2
- import { I18nService } from 'nestjs-i18n';
3
- import { Type } from '@nestjs/common/interfaces/type.interface';
4
- import { DynamicModule } from '@nestjs/common/interfaces/modules/dynamic-module.interface';
5
- import { ForwardReference } from '@nestjs/common/interfaces/modules/forward-reference.interface';
6
- import {
7
- ManyTablesTournamentRoomConfig,
8
- ManyTablesTournamentRoom,
9
- IPrizeTableData,
10
- } from 'jp.ms.common.engine';
11
-
12
- export interface ManyTablesTournamentRoomsManagerOptions extends Pick<
13
- ModuleMetadata,
14
- 'imports'
15
- > {
16
- imports?: Array<
17
- Type | DynamicModule | Promise<DynamicModule> | ForwardReference
18
- >;
19
- inject?: any[];
20
- useFactory?: (...args: any[]) => ManyTablesTournamentRoomsFactoryOptions;
21
- }
22
-
23
- export interface ManyTablesTournamentRoomsFactoryOptions {
24
- i18n: I18nService | any;
25
- createTournamentRoom(
26
- room: ManyTablesTournamentRoomConfig,
27
- ): ManyTablesTournamentRoom;
28
- gameType: string;
29
- restartGameTimeout: number;
30
- playersTurnTimeout: number;
31
- instantFinishMode: boolean;
32
- tournamentPrizeTable: IPrizeTableData;
33
- dailyTournamentScheduleJobEnabled: boolean;
34
- dailyTournamentScheduleTaskTime: string;
35
- dailyTournamentTime: string;
36
- minPlayersForMergeTables: number;
37
- }
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ import { I18nService } from 'nestjs-i18n';
3
+ import { Type } from '@nestjs/common/interfaces/type.interface';
4
+ import { DynamicModule } from '@nestjs/common/interfaces/modules/dynamic-module.interface';
5
+ import { ForwardReference } from '@nestjs/common/interfaces/modules/forward-reference.interface';
6
+ import {
7
+ ManyTablesTournamentRoomConfig,
8
+ ManyTablesTournamentRoom,
9
+ IPrizeTableData,
10
+ } from 'jp.ms.common.engine';
11
+
12
+ export interface ManyTablesTournamentRoomsManagerOptions extends Pick<
13
+ ModuleMetadata,
14
+ 'imports'
15
+ > {
16
+ imports?: Array<
17
+ Type | DynamicModule | Promise<DynamicModule> | ForwardReference
18
+ >;
19
+ inject?: any[];
20
+ useFactory?: (...args: any[]) => ManyTablesTournamentRoomsFactoryOptions;
21
+ }
22
+
23
+ export interface ManyTablesTournamentRoomsFactoryOptions {
24
+ i18n: I18nService | any;
25
+ createTournamentRoom(
26
+ room: ManyTablesTournamentRoomConfig,
27
+ ): ManyTablesTournamentRoom;
28
+ gameType: string;
29
+ restartGameTimeout: number;
30
+ playersTurnTimeout: number;
31
+ instantFinishMode: boolean;
32
+ tournamentPrizeTable: IPrizeTableData;
33
+ dailyTournamentScheduleJobEnabled: boolean;
34
+ dailyTournamentScheduleTaskTime: string;
35
+ dailyTournamentTime: string;
36
+ minPlayersForMergeTables: number;
37
+ }
@@ -1,84 +1,84 @@
1
- import {
2
- DynamicModule,
3
- Global,
4
- Inject,
5
- Module,
6
- Provider,
7
- } from '@nestjs/common';
8
- import { MongooseModule } from '@nestjs/mongoose';
9
- import {
10
- ManyTablesTournamentRoom,
11
- ManyTablesTournamentRoomSchema,
12
- ManyTablesTournamentRoomsRepository,
13
- User,
14
- UserSchema,
15
- UsersRepository,
16
- GameResult,
17
- GameResultSchema,
18
- GameResultRepository,
19
- Purchase,
20
- PurchaseSchema,
21
- PurchaseRepository,
22
- } from 'jp.db.schemas';
23
-
24
- import { ManyTablesTournamentRoomsManagerService } from './many-tables-tournament-rooms-manager.service';
25
- import { ManyTablesTournamentRoomsManagerOptions } from './many-tables-tournament-rooms-manager.interfaces';
26
- import { MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS } from './many-tables-tournament-rooms-manager.constants';
27
- import { ManyTablesTournamentRoomsFactoryOptions } from './many-tables-tournament-rooms-manager.interfaces';
28
-
29
- @Global()
30
- @Module({
31
- imports: [
32
- MongooseModule.forFeature([
33
- {
34
- name: ManyTablesTournamentRoom.name,
35
- schema: ManyTablesTournamentRoomSchema,
36
- },
37
- ]),
38
- MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
39
- MongooseModule.forFeature([
40
- { name: Purchase.name, schema: PurchaseSchema },
41
- ]),
42
- MongooseModule.forFeature([
43
- { name: GameResult.name, schema: GameResultSchema },
44
- ]),
45
- ],
46
- providers: [
47
- ManyTablesTournamentRoomsRepository,
48
- UsersRepository,
49
- ManyTablesTournamentRoomsManagerService,
50
- GameResultRepository,
51
- PurchaseRepository,
52
- ],
53
- exports: [ManyTablesTournamentRoomsManagerService],
54
- })
55
- export class ManyTablesTournamentRoomsManagerModule {
56
- constructor(
57
- private readonly managerService: ManyTablesTournamentRoomsManagerService,
58
- @Inject(MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS)
59
- private readonly options: ManyTablesTournamentRoomsFactoryOptions,
60
- ) {}
61
-
62
- static forRootAsync(
63
- options: ManyTablesTournamentRoomsManagerOptions,
64
- ): DynamicModule {
65
- return {
66
- module: ManyTablesTournamentRoomsManagerModule,
67
- imports: options.imports ?? [],
68
- providers: [
69
- {
70
- provide: MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS,
71
- useFactory: options.useFactory,
72
- inject: options.inject || [],
73
- } as Provider,
74
- ],
75
- };
76
- }
77
-
78
- async onModuleInit() {
79
- if (this.options.dailyTournamentScheduleJobEnabled) {
80
- await this.managerService.runDailyTournamentJob();
81
- }
82
- await this.managerService.hydrateTournamentsFromDB();
83
- }
84
- }
1
+ import {
2
+ DynamicModule,
3
+ Global,
4
+ Inject,
5
+ Module,
6
+ Provider,
7
+ } from '@nestjs/common';
8
+ import { MongooseModule } from '@nestjs/mongoose';
9
+ import {
10
+ ManyTablesTournamentRoom,
11
+ ManyTablesTournamentRoomSchema,
12
+ ManyTablesTournamentRoomsRepository,
13
+ User,
14
+ UserSchema,
15
+ UsersRepository,
16
+ GameResult,
17
+ GameResultSchema,
18
+ GameResultRepository,
19
+ Purchase,
20
+ PurchaseSchema,
21
+ PurchaseRepository,
22
+ } from 'jp.db.schemas';
23
+
24
+ import { ManyTablesTournamentRoomsManagerService } from './many-tables-tournament-rooms-manager.service';
25
+ import { ManyTablesTournamentRoomsManagerOptions } from './many-tables-tournament-rooms-manager.interfaces';
26
+ import { MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS } from './many-tables-tournament-rooms-manager.constants';
27
+ import { ManyTablesTournamentRoomsFactoryOptions } from './many-tables-tournament-rooms-manager.interfaces';
28
+
29
+ @Global()
30
+ @Module({
31
+ imports: [
32
+ MongooseModule.forFeature([
33
+ {
34
+ name: ManyTablesTournamentRoom.name,
35
+ schema: ManyTablesTournamentRoomSchema,
36
+ },
37
+ ]),
38
+ MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
39
+ MongooseModule.forFeature([
40
+ { name: Purchase.name, schema: PurchaseSchema },
41
+ ]),
42
+ MongooseModule.forFeature([
43
+ { name: GameResult.name, schema: GameResultSchema },
44
+ ]),
45
+ ],
46
+ providers: [
47
+ ManyTablesTournamentRoomsRepository,
48
+ UsersRepository,
49
+ ManyTablesTournamentRoomsManagerService,
50
+ GameResultRepository,
51
+ PurchaseRepository,
52
+ ],
53
+ exports: [ManyTablesTournamentRoomsManagerService],
54
+ })
55
+ export class ManyTablesTournamentRoomsManagerModule {
56
+ constructor(
57
+ private readonly managerService: ManyTablesTournamentRoomsManagerService,
58
+ @Inject(MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS)
59
+ private readonly options: ManyTablesTournamentRoomsFactoryOptions,
60
+ ) {}
61
+
62
+ static forRootAsync(
63
+ options: ManyTablesTournamentRoomsManagerOptions,
64
+ ): DynamicModule {
65
+ return {
66
+ module: ManyTablesTournamentRoomsManagerModule,
67
+ imports: options.imports ?? [],
68
+ providers: [
69
+ {
70
+ provide: MANY_TABLES_TOURNAMENT_ROOMS_MANAGER_OPTIONS,
71
+ useFactory: options.useFactory,
72
+ inject: options.inject || [],
73
+ } as Provider,
74
+ ],
75
+ };
76
+ }
77
+
78
+ async onModuleInit() {
79
+ if (this.options.dailyTournamentScheduleJobEnabled) {
80
+ await this.managerService.runDailyTournamentJob();
81
+ }
82
+ await this.managerService.hydrateTournamentsFromDB();
83
+ }
84
+ }