jp.ms.common.modules 1.0.41 → 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 (234) 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/anti-freeze-system/anti-freeze-system.module.d.ts +3 -1
  11. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js +8 -4
  12. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js.map +1 -1
  13. package/dist/modules/anti-freeze-system/anti-freeze-system.service.d.ts +6 -2
  14. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js +37 -10
  15. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js.map +1 -1
  16. package/dist/modules/base-achievements/base-achievements.module.js +2 -2
  17. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  18. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.d.ts +1 -0
  19. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.js +5 -0
  20. package/dist/modules/confirmation-message-manager/confirmation-message-manager.constants.js.map +1 -0
  21. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.d.ts +13 -0
  22. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.js +3 -0
  23. package/dist/modules/confirmation-message-manager/confirmation-message-manager.interfaces.js.map +1 -0
  24. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.d.ts +15 -0
  25. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.js +77 -0
  26. package/dist/modules/confirmation-message-manager/confirmation-message-manager.module.js.map +1 -0
  27. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.d.ts +19 -0
  28. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.js +83 -0
  29. package/dist/modules/confirmation-message-manager/confirmation-message-manager.service.js.map +1 -0
  30. package/dist/modules/event-bus/events-bus.module.js +3 -0
  31. package/dist/modules/event-bus/events-bus.module.js.map +1 -1
  32. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.d.ts +10 -0
  33. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.js +26 -0
  34. package/dist/modules/event-bus/events-bus.player-ws-message.subscribe.service.js.map +1 -0
  35. package/dist/modules/event-bus/index.d.ts +1 -0
  36. package/dist/modules/event-bus/index.js +3 -1
  37. package/dist/modules/event-bus/index.js.map +1 -1
  38. package/dist/modules/events/events.gateway.d.ts +6 -1
  39. package/dist/modules/events/events.gateway.js +19 -5
  40. package/dist/modules/events/events.gateway.js.map +1 -1
  41. package/dist/modules/index.d.ts +1 -0
  42. package/dist/modules/index.js +3 -1
  43. package/dist/modules/index.js.map +1 -1
  44. package/dist/modules/main/main.controller.d.ts +0 -1
  45. package/dist/modules/main/main.controller.js +0 -12
  46. package/dist/modules/main/main.controller.js.map +1 -1
  47. package/dist/modules/main/main.module.js +1 -1
  48. package/dist/modules/main/main.module.js.map +1 -1
  49. package/dist/modules/main/main.service.d.ts +0 -1
  50. package/dist/modules/main/main.service.js +0 -13
  51. package/dist/modules/main/main.service.js.map +1 -1
  52. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +1 -0
  53. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +12 -0
  54. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
  55. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +7 -2
  56. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
  57. package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +4 -1
  58. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +18 -2
  59. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  60. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js +2 -0
  61. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.js.map +1 -1
  62. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.d.ts +3 -2
  63. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js +9 -6
  64. package/dist/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.js.map +1 -1
  65. package/dist/modules/menu/menu-screen.view.d.ts +2 -1
  66. package/dist/modules/menu/menu-screen.view.js +9 -3
  67. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  68. package/dist/modules/menu/menu.interfaces.d.ts +1 -0
  69. package/dist/modules/menu/menu.service.js +1 -1
  70. package/dist/modules/menu/menu.service.js.map +1 -1
  71. package/dist/modules/one-table-tournament/one-table-tournament.module.js +1 -1
  72. package/dist/modules/one-table-tournament/one-table-tournament.module.js.map +1 -1
  73. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js +2 -0
  74. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.js.map +1 -1
  75. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.d.ts +3 -2
  76. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js +9 -6
  77. package/dist/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.js.map +1 -1
  78. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +2 -0
  79. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -1
  80. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +3 -2
  81. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +8 -5
  82. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/dist/utils/game-table-result.d.ts +4 -3
  85. package/dist/utils/game-table-result.js +54 -4
  86. package/dist/utils/game-table-result.js.map +1 -1
  87. package/package.json +57 -57
  88. package/src/dto/app-screen/app-screen-app-bar.dto.ts +36 -36
  89. package/src/dto/app-screen/app-screen-dialog.dto.ts +64 -64
  90. package/src/dto/app-screen/app-screen-field-list-item.dto.ts +42 -42
  91. package/src/dto/app-screen/app-screen-field.dto.ts +59 -59
  92. package/src/dto/app-screen/app-screen-section-button.dto.ts +60 -60
  93. package/src/dto/app-screen/app-screen-section-buttons.dto.ts +14 -14
  94. package/src/dto/app-screen/app-screen-section-image.dto.ts +33 -33
  95. package/src/dto/app-screen/app-screen-section-list-item.dto.ts +105 -105
  96. package/src/dto/app-screen/app-screen-section-req.dto.ts +33 -33
  97. package/src/dto/app-screen/app-screen-section.dto.ts +76 -76
  98. package/src/dto/app-screen/app-screen.dto.ts +50 -50
  99. package/src/dto/app-screen/base-app-screen.dto.ts +16 -16
  100. package/src/dto/app-screen/index.ts +10 -10
  101. package/src/dto/app-table/bids-panel-item.dto.ts +33 -33
  102. package/src/dto/app-table/bids-panel.dto.ts +32 -32
  103. package/src/dto/app-table/card.dto.ts +63 -54
  104. package/src/dto/app-table/cards-deck.dto.ts +22 -22
  105. package/src/dto/app-table/cards-pair-slots-item.dto.ts +45 -45
  106. package/src/dto/app-table/cards-pair-slots.dto.ts +13 -13
  107. package/src/dto/app-table/cards-panel.dto.ts +48 -48
  108. package/src/dto/app-table/cards-player.dto.ts +14 -14
  109. package/src/dto/app-table/cards-slots-item.dto.ts +40 -40
  110. package/src/dto/app-table/cards-slots.dto.ts +13 -13
  111. package/src/dto/app-table/index.ts +15 -15
  112. package/src/dto/app-table/moves-panel-button.dto.ts +24 -24
  113. package/src/dto/app-table/moves-panel.dto.ts +23 -23
  114. package/src/dto/app-table/player.dto.ts +78 -69
  115. package/src/dto/app-table/summary-item.dto.ts +51 -51
  116. package/src/dto/app-table/summary.dto.ts +13 -13
  117. package/src/dto/common/find-free-table.dto.ts +3 -3
  118. package/src/dto/common/index.ts +2 -2
  119. package/src/dto/common/join-tournament.dto.ts +33 -33
  120. package/src/dto/common/log.dto.ts +9 -9
  121. package/src/dto/common/many-tables-tournament-create.dto.ts +125 -125
  122. package/src/dto/common/many-tables-tournament-update.dto.ts +3 -3
  123. package/src/dto/common/player-check-state.dto.ts +33 -33
  124. package/src/dto/common/player-connected.dto.ts +58 -58
  125. package/src/dto/games/fool/fool-player.dto.ts +3 -3
  126. package/src/dto/games/fool/fool-table.dto.ts +89 -81
  127. package/src/dto/games/index.ts +2 -2
  128. package/src/dto/games/poker/poker-player.dto.ts +3 -3
  129. package/src/dto/games/poker/poker-table.dto.ts +81 -81
  130. package/src/dto/index.ts +4 -4
  131. package/src/exception/error-code.enum.ts +4 -4
  132. package/src/exception/global-exception-filter.ts +53 -53
  133. package/src/exception/http-exception-wth-snackbar.ts +27 -27
  134. package/src/exception/index.ts +4 -4
  135. package/src/exception/not-enough-money-for-purchase.exception.ts +14 -14
  136. package/src/exception/not-found-free-room-for-fast-game.exception.ts +14 -14
  137. package/src/index.ts +4 -4
  138. package/src/modules/anti-freeze-system/anti-freeze-system.constants.ts +1 -1
  139. package/src/modules/anti-freeze-system/anti-freeze-system.interfaces.ts +20 -20
  140. package/src/modules/anti-freeze-system/anti-freeze-system.module.ts +59 -55
  141. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +136 -105
  142. package/src/modules/anti-freeze-system/index.ts +1 -1
  143. package/src/modules/base-achievements/base-achievements.module.ts +324 -322
  144. package/src/modules/base-achievements/index.ts +1 -1
  145. package/src/modules/confirmation-message-manager/confirmation-message-manager.constants.ts +3 -0
  146. package/src/modules/confirmation-message-manager/confirmation-message-manager.interfaces.ts +20 -0
  147. package/src/modules/confirmation-message-manager/confirmation-message-manager.module.ts +77 -0
  148. package/src/modules/confirmation-message-manager/confirmation-message-manager.service.ts +91 -0
  149. package/src/modules/event-bus/events-bus.app.subscribe.service.ts +20 -20
  150. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +34 -34
  151. package/src/modules/event-bus/events-bus.many-tables-tournament.subscribe.service.ts +6 -6
  152. package/src/modules/event-bus/events-bus.module.ts +26 -23
  153. package/src/modules/event-bus/events-bus.one-table-tournament.subscribe.service.ts +6 -6
  154. package/src/modules/event-bus/events-bus.player-ws-message.subscribe.service.ts +30 -0
  155. package/src/modules/event-bus/events-bus.tournament.subscribe.service.ts +18 -18
  156. package/src/modules/event-bus/index.ts +6 -5
  157. package/src/modules/events/events.constants.ts +1 -1
  158. package/src/modules/events/events.gateway.ts +84 -70
  159. package/src/modules/events/events.interfaces.ts +17 -17
  160. package/src/modules/events/events.module.ts +32 -32
  161. package/src/modules/events/index.ts +1 -1
  162. package/src/modules/index.ts +28 -27
  163. package/src/modules/logger/index.ts +2 -2
  164. package/src/modules/logger/jp-logger.module.ts +10 -10
  165. package/src/modules/logger/jp-logger.service.ts +38 -38
  166. package/src/modules/main/index.ts +1 -1
  167. package/src/modules/main/main-tables-list-screen.view.ts +275 -275
  168. package/src/modules/main/main.constants.ts +1 -1
  169. package/src/modules/main/main.controller.ts +51 -72
  170. package/src/modules/main/main.interfaces.ts +17 -17
  171. package/src/modules/main/main.module.ts +73 -73
  172. package/src/modules/main/main.service.ts +154 -183
  173. package/src/modules/many-tables-tournament/index.ts +1 -1
  174. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +143 -143
  175. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +63 -63
  176. package/src/modules/many-tables-tournament/many-tables-tournament.constants.ts +3 -3
  177. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +164 -151
  178. package/src/modules/many-tables-tournament/many-tables-tournament.interfaces.ts +20 -20
  179. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +89 -80
  180. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +241 -208
  181. package/src/modules/many-tables-tournament-rooms-manager/index.ts +2 -2
  182. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.constants.ts +3 -3
  183. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.interfaces.ts +37 -37
  184. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.module.ts +89 -84
  185. package/src/modules/many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service.ts +333 -331
  186. package/src/modules/menu/index.ts +1 -1
  187. package/src/modules/menu/menu-screen.view.ts +78 -71
  188. package/src/modules/menu/menu.constants.ts +1 -1
  189. package/src/modules/menu/menu.controller.ts +16 -16
  190. package/src/modules/menu/menu.interfaces.ts +18 -17
  191. package/src/modules/menu/menu.module.ts +39 -39
  192. package/src/modules/menu/menu.service.ts +40 -39
  193. package/src/modules/one-table-tournament/index.ts +1 -1
  194. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +166 -166
  195. package/src/modules/one-table-tournament/one-table-tournament.constants.ts +3 -3
  196. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +104 -104
  197. package/src/modules/one-table-tournament/one-table-tournament.interfaces.ts +20 -20
  198. package/src/modules/one-table-tournament/one-table-tournament.module.ts +80 -76
  199. package/src/modules/one-table-tournament/one-table-tournament.service.ts +146 -146
  200. package/src/modules/one-table-tournament-rooms-manager/index.ts +2 -2
  201. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.constants.ts +3 -3
  202. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.interfaces.ts +31 -31
  203. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.module.ts +71 -66
  204. package/src/modules/one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service.ts +222 -220
  205. package/src/modules/players-manager/index.ts +2 -2
  206. package/src/modules/players-manager/players-manager.module.ts +9 -9
  207. package/src/modules/players-manager/players-manager.service.ts +27 -27
  208. package/src/modules/simple-rooms/index.ts +1 -1
  209. package/src/modules/simple-rooms/simple-rooms.constants.ts +1 -1
  210. package/src/modules/simple-rooms/simple-rooms.controller.ts +63 -63
  211. package/src/modules/simple-rooms/simple-rooms.interfaces.ts +20 -20
  212. package/src/modules/simple-rooms/simple-rooms.module.ts +39 -39
  213. package/src/modules/simple-rooms/simple-rooms.service.ts +95 -95
  214. package/src/modules/simple-rooms-manager/index.ts +2 -2
  215. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +3 -3
  216. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +26 -26
  217. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +65 -60
  218. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +192 -190
  219. package/src/modules/support/dump.service.ts +11 -11
  220. package/src/modules/support/index.ts +1 -1
  221. package/src/modules/support/metric.service.ts +41 -41
  222. package/src/modules/support/support.constants.ts +1 -1
  223. package/src/modules/support/support.controller.ts +79 -79
  224. package/src/modules/support/support.interfaces.ts +16 -16
  225. package/src/modules/support/support.module.ts +35 -35
  226. package/src/modules/support/support.service.ts +27 -27
  227. package/src/utils/date.ts +7 -7
  228. package/src/utils/game-table-result.ts +190 -129
  229. package/src/views/index.ts +5 -5
  230. package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +37 -37
  231. package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +37 -37
  232. package/src/views/simple-room-conifrm-exit-dialog.view.ts +37 -37
  233. package/src/views/table-summary.view.ts +104 -104
  234. package/src/views/tournament-buy-ticket-dialog.view.ts +34 -34
@@ -1,208 +1,241 @@
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
+ ErrorSnackbarComponent,
11
+ } from 'jp.common.models';
12
+ import {
13
+ ManyTablesTournamentMaster,
14
+ TournamentMaster,
15
+ } from 'jp.ms.common.engine';
16
+ import { UsersRepository } from 'jp.db.schemas';
17
+
18
+ import { BaseAppScreenDto } from '../../dto';
19
+ import { ManyTablesTournamentRoomsManagerService } from '../many-tables-tournament-rooms-manager/many-tables-tournament-rooms-manager.service';
20
+ import { PlayersManagerService } from '../players-manager/players-manager.service';
21
+ import { JoinTournamentDto } from '../../dto/common/join-tournament.dto';
22
+ import { ManyTablesTournamentCreateDto } from '../../dto/common/many-tables-tournament-create.dto';
23
+ import { ManyTablesTournamentUpdateDto } from '../../dto/common/many-tables-tournament-update.dto';
24
+ import {
25
+ NotEnoughMoneyForPurchaseException,
26
+ ErrorCodeEnum,
27
+ } from '../../exception';
28
+
29
+ import { ManyTablesTournamentFactoryOptions } from './many-tables-tournament.interfaces';
30
+ import { MANY_TABLES_TOURNAMENT_OPTIONS } from './many-tables-tournament.constants';
31
+ import { ManyTablesTournamentStatusScreenView } from './many-tables-tournament-status-screen.view';
32
+ import { ManyTablesTournamentTablesListScreenView } from './many-tables-tournament-tables-list-screen.view';
33
+
34
+ @Injectable()
35
+ export class ManyTablesTournamentService {
36
+ constructor(
37
+ private readonly manyTablesRoomsManagerService: ManyTablesTournamentRoomsManagerService,
38
+ private readonly playersManager: PlayersManagerService,
39
+ @Inject(MANY_TABLES_TOURNAMENT_OPTIONS)
40
+ private readonly options: ManyTablesTournamentFactoryOptions,
41
+ private readonly usersRepository: UsersRepository,
42
+ ) {}
43
+
44
+ getStatusScreen(tournamentId: string, lang: string): BaseAppScreenDto {
45
+ const tournament =
46
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
47
+
48
+ if (!tournament) {
49
+ throw new InternalServerErrorException();
50
+ }
51
+
52
+ return new BaseAppScreenDto(
53
+ new ManyTablesTournamentStatusScreenView(
54
+ this.options.i18n,
55
+ lang,
56
+ tournament,
57
+ ).buildBS(),
58
+ );
59
+ }
60
+
61
+ subscribeOnStatusScreen(tournamentId: string, clientAuthToken: string): void {
62
+ const player = this.playersManager.getPlayerById(clientAuthToken);
63
+ const tournament =
64
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
65
+
66
+ if (!player || !tournament) {
67
+ throw new InternalServerErrorException();
68
+ }
69
+
70
+ tournament.addToStatusScreenWatchers(player);
71
+ }
72
+
73
+ unsubscribeFromStatusScreen(
74
+ tournamentId: string,
75
+ clientAuthToken: string,
76
+ ): void {
77
+ const player = this.playersManager.getPlayerById(clientAuthToken);
78
+ const tournament =
79
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
80
+
81
+ if (!player || !tournament) {
82
+ throw new InternalServerErrorException();
83
+ }
84
+
85
+ tournament.removeFromStatusScreenWatchers(player);
86
+ }
87
+
88
+ getTableListScreen(tournamentId: string, lang: string): BaseAppScreenDto {
89
+ const tournament =
90
+ this.manyTablesRoomsManagerService.getRoomById(tournamentId);
91
+
92
+ if (!tournament) {
93
+ throw new InternalServerErrorException();
94
+ }
95
+
96
+ return new BaseAppScreenDto(
97
+ new ManyTablesTournamentTablesListScreenView(
98
+ this.options.i18n,
99
+ lang,
100
+ tournament,
101
+ ).buildBS(),
102
+ );
103
+ }
104
+
105
+ watchTheTable(tableId: string, clientAuthToken: string): IAppTableState {
106
+ const player = this.playersManager.getPlayerById(clientAuthToken);
107
+ const room = this.manyTablesRoomsManagerService.getRoomByTableId(tableId);
108
+ const master = room?.getMasterById(tableId);
109
+
110
+ if (player && room && master) {
111
+ room.handleWatchTheTable(player, tableId);
112
+
113
+ return master.createGameStateDto(player);
114
+ }
115
+
116
+ throw new InternalServerErrorException();
117
+ }
118
+
119
+ moveOnTheTable(
120
+ tableId: string,
121
+ clientAuthToken: string,
122
+ moveDto: IBaseMoveData,
123
+ ): IAppTableState {
124
+ const player = this.playersManager.getPlayerById(clientAuthToken);
125
+ const room = this.manyTablesRoomsManagerService.getRoomByTableId(tableId);
126
+ const master = room?.getMasterById(tableId);
127
+
128
+ if (player && room && master) {
129
+ room.handleMoveOnTheTable(player, tableId, moveDto);
130
+
131
+ return master.createGameStateDto(player);
132
+ }
133
+
134
+ throw new InternalServerErrorException();
135
+ }
136
+
137
+ joinTournament(
138
+ tournamentId: string,
139
+ clientAuthToken: string,
140
+ ): JoinTournamentDto {
141
+ const player = this.playersManager.getPlayerById(clientAuthToken);
142
+ const tournament =
143
+ this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
144
+
145
+ if (player && tournament) {
146
+ tournament.handleJoinTournament(player);
147
+
148
+ if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
149
+ if (player.isPlayer() || player.isTableQueuer()) {
150
+ return JoinTournamentDto.fromEntities(
151
+ AppScreenRouter.getManyTablesTournamentTablePath(
152
+ player.tableId ?? '',
153
+ ),
154
+ player.id,
155
+ );
156
+ } else if (tournament.isParticipant(player.id)) {
157
+ tournament
158
+ .getRoomMaster<ManyTablesTournamentMaster>()
159
+ .onTournamentProcessAlonePlayer(tournament.getRoomMaster(), player);
160
+
161
+ return JoinTournamentDto.fromEntities(
162
+ AppScreenRouter.getManyTablesTournamentTablePath(
163
+ player.tableId ?? '',
164
+ ),
165
+ player.id,
166
+ );
167
+ } else {
168
+ return JoinTournamentDto.fromEntities(
169
+ AppScreenRouter.getManyTablesTournamentTableListPath(tournamentId),
170
+ player.id,
171
+ );
172
+ }
173
+ } else {
174
+ return JoinTournamentDto.fromEntities(
175
+ AppScreenRouter.getManyTablesTournamentStatusPath(tournament.getId()),
176
+ player.id,
177
+ );
178
+ }
179
+ }
180
+
181
+ throw new InternalServerErrorException();
182
+ }
183
+
184
+ leaveTournament(tournamentId: string, clientAuthToken: string): void {
185
+ const player = this.playersManager.getPlayerById(clientAuthToken);
186
+ const tournament =
187
+ this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
188
+
189
+ if (!player || !tournament) {
190
+ throw new InternalServerErrorException();
191
+ }
192
+
193
+ tournament.handleLeaveTournament(player);
194
+ }
195
+
196
+ async createTournament(createTournamentDto: ManyTablesTournamentCreateDto) {
197
+ return this.manyTablesRoomsManagerService.createTournament(
198
+ createTournamentDto,
199
+ );
200
+ }
201
+
202
+ async updateTournament(
203
+ tournamentId: string,
204
+ updateTournamentDto: ManyTablesTournamentUpdateDto,
205
+ ) {
206
+ return this.manyTablesRoomsManagerService.updateTournament(
207
+ tournamentId,
208
+ updateTournamentDto,
209
+ );
210
+ }
211
+
212
+ async removeTournament(tournamentId: string) {
213
+ return this.manyTablesRoomsManagerService.removeTournament(tournamentId);
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
+ }
241
+ }
@@ -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
+ }