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,76 +1,80 @@
1
- import { DynamicModule, Module, Provider } from '@nestjs/common';
2
- import { MongooseModule } from '@nestjs/mongoose';
3
- import {
4
- OneTableTournamentRoom,
5
- OneTableTournamentRoomSchema,
6
- OneTableTournamentRoomsRepository,
7
- } from 'jp.db.schemas';
8
- import {
9
- GamePlayer,
10
- OneTableTournamentUpdateStatusWsEvent,
11
- RoomUpdateStateEvent,
12
- } from 'jp.ms.common.engine';
13
-
14
- import { OneTableTournamentRoomsManagerService } from '../one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service';
15
- import { EventsBusOneTableTournamentSubscribeService } from '../event-bus';
16
-
17
- import { OneTableTournamentController } from './one-table-tournament.controller';
18
- import { OneTableTournamentService } from './one-table-tournament.service';
19
- import { ONE_TABLE_TOURNAMENT_OPTIONS } from './one-table-tournament.constants';
20
- import { OneTableTournamentModuleOptions } from './one-table-tournament.interfaces';
21
-
22
- @Module({
23
- imports: [
24
- MongooseModule.forFeature([
25
- {
26
- name: OneTableTournamentRoom.name,
27
- schema: OneTableTournamentRoomSchema,
28
- },
29
- ]),
30
- ],
31
- controllers: [OneTableTournamentController],
32
- providers: [OneTableTournamentService, OneTableTournamentRoomsRepository],
33
- })
34
- export class OneTableTournamentModule {
35
- constructor(
36
- private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
37
- private readonly eventsBusOneTableTournamentSubscribeService: EventsBusOneTableTournamentSubscribeService,
38
- private readonly oneTableTournamentService: OneTableTournamentService,
39
- ) {}
40
-
41
- static forRootAsync(options: OneTableTournamentModuleOptions): DynamicModule {
42
- return {
43
- module: OneTableTournamentModule,
44
- imports: options.imports ?? [],
45
- providers: [
46
- {
47
- provide: ONE_TABLE_TOURNAMENT_OPTIONS,
48
- useFactory: options.useFactory,
49
- inject: options.inject || [],
50
- } as Provider,
51
- ],
52
- };
53
- }
54
-
55
- onModuleInit() {
56
- this.eventsBusOneTableTournamentSubscribeService.subscribe(
57
- this.onHandleStatusRoomChange,
58
- );
59
- }
60
-
61
- private onHandleStatusRoomChange = (event: RoomUpdateStateEvent) => {
62
- this.oneTableRoomsManagerService
63
- .getRoomById(event.roomId)
64
- ?.getStatusScreenWatchers()
65
- .forEach((subscriber: GamePlayer) => {
66
- const screen = this.oneTableTournamentService.getStatusScreen(
67
- event.roomId,
68
- subscriber.language,
69
- subscriber.id,
70
- );
71
- subscriber.sendMessage(
72
- new OneTableTournamentUpdateStatusWsEvent(event.game, screen.screen),
73
- );
74
- });
75
- };
76
- }
1
+ import { DynamicModule, Module, Provider } from '@nestjs/common';
2
+ import { MongooseModule } from '@nestjs/mongoose';
3
+ import {
4
+ OneTableTournamentRoom,
5
+ OneTableTournamentRoomSchema,
6
+ OneTableTournamentRoomsRepository,
7
+ } from 'jp.db.schemas';
8
+ import {
9
+ GamePlayer,
10
+ OneTableTournamentUpdateStatusWsEvent,
11
+ RoomUpdateStateEvent,
12
+ } from 'jp.ms.common.engine';
13
+
14
+ import { OneTableTournamentRoomsManagerService } from '../one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service';
15
+ import { EventsBusOneTableTournamentSubscribeService } from '../event-bus';
16
+
17
+ import { OneTableTournamentController } from './one-table-tournament.controller';
18
+ import { OneTableTournamentService } from './one-table-tournament.service';
19
+ import { ONE_TABLE_TOURNAMENT_OPTIONS } from './one-table-tournament.constants';
20
+ import { OneTableTournamentModuleOptions } from './one-table-tournament.interfaces';
21
+
22
+ @Module({
23
+ imports: [
24
+ MongooseModule.forFeature([
25
+ {
26
+ name: OneTableTournamentRoom.name,
27
+ schema: OneTableTournamentRoomSchema,
28
+ },
29
+ ]),
30
+ ],
31
+ controllers: [OneTableTournamentController],
32
+ providers: [OneTableTournamentService, OneTableTournamentRoomsRepository],
33
+ })
34
+ export class OneTableTournamentModule {
35
+ constructor(
36
+ private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
37
+ private readonly eventsBusOneTableTournamentSubscribeService: EventsBusOneTableTournamentSubscribeService,
38
+ private readonly oneTableTournamentService: OneTableTournamentService,
39
+ ) {}
40
+
41
+ static forRootAsync(options: OneTableTournamentModuleOptions): DynamicModule {
42
+ return {
43
+ module: OneTableTournamentModule,
44
+ imports: options.imports ?? [],
45
+ providers: [
46
+ {
47
+ provide: ONE_TABLE_TOURNAMENT_OPTIONS,
48
+ useFactory: options.useFactory,
49
+ inject: options.inject || [],
50
+ } as Provider,
51
+ ],
52
+ };
53
+ }
54
+
55
+ onModuleInit() {
56
+ this.eventsBusOneTableTournamentSubscribeService.subscribe(
57
+ this.onHandleStatusRoomChange,
58
+ );
59
+ }
60
+
61
+ private onHandleStatusRoomChange = (event: RoomUpdateStateEvent) => {
62
+ this.oneTableRoomsManagerService
63
+ .getRoomById(event.roomId)
64
+ ?.getStatusScreenWatchers()
65
+ .forEach((subscriber: GamePlayer) => {
66
+ const screen = this.oneTableTournamentService.getStatusScreen(
67
+ event.roomId,
68
+ subscriber.language,
69
+ subscriber.id,
70
+ );
71
+ subscriber.sendMessage(
72
+ new OneTableTournamentUpdateStatusWsEvent(
73
+ event.game,
74
+ subscriber.id,
75
+ screen.screen,
76
+ ),
77
+ );
78
+ });
79
+ };
80
+ }
@@ -1,146 +1,146 @@
1
- import {
2
- Inject,
3
- Injectable,
4
- InternalServerErrorException,
5
- } from '@nestjs/common';
6
- import {
7
- IAppHeaders,
8
- IBaseAppScreen,
9
- IBaseMoveData,
10
- IAppTableState,
11
- } from 'jp.common.models';
12
-
13
- import { BaseAppScreenDto } from '../../dto';
14
- import { OneTableTournamentRoomsManagerService } from '../one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service';
15
- import { PlayersManagerService } from '../players-manager/players-manager.service';
16
-
17
- import { OneTableTournamentFactoryOptions } from './one-table-tournament.interfaces';
18
- import { ONE_TABLE_TOURNAMENT_OPTIONS } from './one-table-tournament.constants';
19
- import { OneTableTournamentStatusScreenView } from './one-table-tournament-status-screen.view';
20
-
21
- @Injectable()
22
- export class OneTableTournamentService {
23
- constructor(
24
- private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
25
- private readonly playersManager: PlayersManagerService,
26
- @Inject(ONE_TABLE_TOURNAMENT_OPTIONS)
27
- private readonly options: OneTableTournamentFactoryOptions,
28
- ) {}
29
-
30
- getStatusScreen(
31
- tournamentId: string,
32
- lang: string,
33
- playerId: string,
34
- ): BaseAppScreenDto {
35
- const tournament =
36
- this.oneTableRoomsManagerService.getRoomById(tournamentId);
37
-
38
- if (!tournament) {
39
- throw new InternalServerErrorException();
40
- }
41
-
42
- return new BaseAppScreenDto(
43
- new OneTableTournamentStatusScreenView(
44
- this.options.i18n,
45
- lang,
46
- tournament,
47
- playerId,
48
- ).buildBS(),
49
- );
50
- }
51
-
52
- subscribeOnStatusScreen(tournamentId: string, clientAuthToken: string): void {
53
- const player = this.playersManager.getPlayerById(clientAuthToken);
54
- const tournament =
55
- this.oneTableRoomsManagerService.getRoomById(tournamentId);
56
-
57
- if (player && tournament) {
58
- tournament.addToStatusScreenWatchers(player);
59
-
60
- return;
61
- }
62
-
63
- throw new InternalServerErrorException();
64
- }
65
-
66
- unsubscribeFromStatusScreen(
67
- tournamentId: string,
68
- clientAuthToken: string,
69
- ): void {
70
- const player = this.playersManager.getPlayerById(clientAuthToken);
71
- const tournament =
72
- this.oneTableRoomsManagerService.getRoomById(tournamentId);
73
-
74
- if (player && tournament) {
75
- tournament.removeFromStatusScreenWatchers(player);
76
-
77
- return;
78
- }
79
-
80
- throw new InternalServerErrorException();
81
- }
82
-
83
- watchTheTable(tableId: string, clientAuthToken: string): IAppTableState {
84
- const player = this.playersManager.getPlayerById(clientAuthToken);
85
- const room = this.oneTableRoomsManagerService.getRoomByTableId(tableId);
86
- const master = room?.getMasterById(tableId);
87
-
88
- if (player && room && master) {
89
- room.handleWatchTheTable(player, tableId);
90
-
91
- return master.createGameStateDto(player);
92
- }
93
-
94
- throw new InternalServerErrorException();
95
- }
96
-
97
- moveOnTheTable(
98
- tableId: string,
99
- clientAuthToken: string,
100
- moveDto: IBaseMoveData,
101
- ): IAppTableState {
102
- const player = this.playersManager.getPlayerById(clientAuthToken);
103
- const room = this.oneTableRoomsManagerService.getRoomByTableId(tableId);
104
- const master = room?.getMasterById(tableId);
105
-
106
- if (player && room && master) {
107
- room.handleMoveOnTheTable(player, tableId, moveDto);
108
-
109
- return master.createGameStateDto(player);
110
- }
111
-
112
- throw new InternalServerErrorException();
113
- }
114
-
115
- joinTournament(tournamentId: string, headers: IAppHeaders): IBaseAppScreen {
116
- const player = this.playersManager.getPlayerById(headers.client_auth_token);
117
- const tournament =
118
- this.oneTableRoomsManagerService.getRoomByTableId(tournamentId);
119
-
120
- if (player && tournament) {
121
- tournament.handleJoinTournament(player);
122
-
123
- return this.getStatusScreen(
124
- tournamentId,
125
- headers.client_language,
126
- headers.client_auth_token,
127
- );
128
- }
129
-
130
- throw new InternalServerErrorException();
131
- }
132
-
133
- leaveTournament(tournamentId: string, clientAuthToken: string): void {
134
- const player = this.playersManager.getPlayerById(clientAuthToken);
135
- const tournament =
136
- this.oneTableRoomsManagerService.getRoomByTableId(tournamentId);
137
-
138
- if (player && tournament) {
139
- tournament.handleLeaveTournament(player);
140
-
141
- return;
142
- }
143
-
144
- throw new InternalServerErrorException();
145
- }
146
- }
1
+ import {
2
+ Inject,
3
+ Injectable,
4
+ InternalServerErrorException,
5
+ } from '@nestjs/common';
6
+ import {
7
+ IAppHeaders,
8
+ IBaseAppScreen,
9
+ IBaseMoveData,
10
+ IAppTableState,
11
+ } from 'jp.common.models';
12
+
13
+ import { BaseAppScreenDto } from '../../dto';
14
+ import { OneTableTournamentRoomsManagerService } from '../one-table-tournament-rooms-manager/one-table-tournament-rooms-manager.service';
15
+ import { PlayersManagerService } from '../players-manager/players-manager.service';
16
+
17
+ import { OneTableTournamentFactoryOptions } from './one-table-tournament.interfaces';
18
+ import { ONE_TABLE_TOURNAMENT_OPTIONS } from './one-table-tournament.constants';
19
+ import { OneTableTournamentStatusScreenView } from './one-table-tournament-status-screen.view';
20
+
21
+ @Injectable()
22
+ export class OneTableTournamentService {
23
+ constructor(
24
+ private readonly oneTableRoomsManagerService: OneTableTournamentRoomsManagerService,
25
+ private readonly playersManager: PlayersManagerService,
26
+ @Inject(ONE_TABLE_TOURNAMENT_OPTIONS)
27
+ private readonly options: OneTableTournamentFactoryOptions,
28
+ ) {}
29
+
30
+ getStatusScreen(
31
+ tournamentId: string,
32
+ lang: string,
33
+ playerId: string,
34
+ ): BaseAppScreenDto {
35
+ const tournament =
36
+ this.oneTableRoomsManagerService.getRoomById(tournamentId);
37
+
38
+ if (!tournament) {
39
+ throw new InternalServerErrorException();
40
+ }
41
+
42
+ return new BaseAppScreenDto(
43
+ new OneTableTournamentStatusScreenView(
44
+ this.options.i18n,
45
+ lang,
46
+ tournament,
47
+ playerId,
48
+ ).buildBS(),
49
+ );
50
+ }
51
+
52
+ subscribeOnStatusScreen(tournamentId: string, clientAuthToken: string): void {
53
+ const player = this.playersManager.getPlayerById(clientAuthToken);
54
+ const tournament =
55
+ this.oneTableRoomsManagerService.getRoomById(tournamentId);
56
+
57
+ if (player && tournament) {
58
+ tournament.addToStatusScreenWatchers(player);
59
+
60
+ return;
61
+ }
62
+
63
+ throw new InternalServerErrorException();
64
+ }
65
+
66
+ unsubscribeFromStatusScreen(
67
+ tournamentId: string,
68
+ clientAuthToken: string,
69
+ ): void {
70
+ const player = this.playersManager.getPlayerById(clientAuthToken);
71
+ const tournament =
72
+ this.oneTableRoomsManagerService.getRoomById(tournamentId);
73
+
74
+ if (player && tournament) {
75
+ tournament.removeFromStatusScreenWatchers(player);
76
+
77
+ return;
78
+ }
79
+
80
+ throw new InternalServerErrorException();
81
+ }
82
+
83
+ watchTheTable(tableId: string, clientAuthToken: string): IAppTableState {
84
+ const player = this.playersManager.getPlayerById(clientAuthToken);
85
+ const room = this.oneTableRoomsManagerService.getRoomByTableId(tableId);
86
+ const master = room?.getMasterById(tableId);
87
+
88
+ if (player && room && master) {
89
+ room.handleWatchTheTable(player, tableId);
90
+
91
+ return master.createGameStateDto(player);
92
+ }
93
+
94
+ throw new InternalServerErrorException();
95
+ }
96
+
97
+ moveOnTheTable(
98
+ tableId: string,
99
+ clientAuthToken: string,
100
+ moveDto: IBaseMoveData,
101
+ ): IAppTableState {
102
+ const player = this.playersManager.getPlayerById(clientAuthToken);
103
+ const room = this.oneTableRoomsManagerService.getRoomByTableId(tableId);
104
+ const master = room?.getMasterById(tableId);
105
+
106
+ if (player && room && master) {
107
+ room.handleMoveOnTheTable(player, tableId, moveDto);
108
+
109
+ return master.createGameStateDto(player);
110
+ }
111
+
112
+ throw new InternalServerErrorException();
113
+ }
114
+
115
+ joinTournament(tournamentId: string, headers: IAppHeaders): IBaseAppScreen {
116
+ const player = this.playersManager.getPlayerById(headers.client_auth_token);
117
+ const tournament =
118
+ this.oneTableRoomsManagerService.getRoomByTableId(tournamentId);
119
+
120
+ if (player && tournament) {
121
+ tournament.handleJoinTournament(player);
122
+
123
+ return this.getStatusScreen(
124
+ tournamentId,
125
+ headers.client_language,
126
+ headers.client_auth_token,
127
+ );
128
+ }
129
+
130
+ throw new InternalServerErrorException();
131
+ }
132
+
133
+ leaveTournament(tournamentId: string, clientAuthToken: string): void {
134
+ const player = this.playersManager.getPlayerById(clientAuthToken);
135
+ const tournament =
136
+ this.oneTableRoomsManagerService.getRoomByTableId(tournamentId);
137
+
138
+ if (player && tournament) {
139
+ tournament.handleLeaveTournament(player);
140
+
141
+ return;
142
+ }
143
+
144
+ throw new InternalServerErrorException();
145
+ }
146
+ }
@@ -1,2 +1,2 @@
1
- export { OneTableTournamentRoomsManagerModule } from './one-table-tournament-rooms-manager.module';
2
- export { OneTableTournamentRoomsManagerService } from './one-table-tournament-rooms-manager.service';
1
+ export { OneTableTournamentRoomsManagerModule } from './one-table-tournament-rooms-manager.module';
2
+ export { OneTableTournamentRoomsManagerService } from './one-table-tournament-rooms-manager.service';
@@ -1,3 +1,3 @@
1
- export const ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS = Symbol(
2
- 'ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS',
3
- );
1
+ export const ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS = Symbol(
2
+ 'ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS',
3
+ );
@@ -1,31 +1,31 @@
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
- TournamentRoomConfig,
8
- OneTableTournamentRoom,
9
- IPrizeTableData,
10
- } from 'jp.ms.common.engine';
11
-
12
- export interface OneTableTournamentRoomsManagerOptions extends Pick<
13
- ModuleMetadata,
14
- 'imports'
15
- > {
16
- imports?: Array<
17
- Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference
18
- >;
19
- inject?: any[];
20
- useFactory?: (...args: any[]) => OneTableTournamentRoomsFactoryOptions;
21
- }
22
-
23
- export interface OneTableTournamentRoomsFactoryOptions {
24
- i18n: I18nService | any;
25
- createTournamentRoom(room: TournamentRoomConfig): OneTableTournamentRoom;
26
- gameType: string;
27
- restartGameTimeout: number;
28
- playersTurnTimeout: number;
29
- instantFinishMode: boolean;
30
- tournamentPrizeTable: IPrizeTableData;
31
- }
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
+ TournamentRoomConfig,
8
+ OneTableTournamentRoom,
9
+ IPrizeTableData,
10
+ } from 'jp.ms.common.engine';
11
+
12
+ export interface OneTableTournamentRoomsManagerOptions extends Pick<
13
+ ModuleMetadata,
14
+ 'imports'
15
+ > {
16
+ imports?: Array<
17
+ Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference
18
+ >;
19
+ inject?: any[];
20
+ useFactory?: (...args: any[]) => OneTableTournamentRoomsFactoryOptions;
21
+ }
22
+
23
+ export interface OneTableTournamentRoomsFactoryOptions {
24
+ i18n: I18nService | any;
25
+ createTournamentRoom(room: TournamentRoomConfig): OneTableTournamentRoom;
26
+ gameType: string;
27
+ restartGameTimeout: number;
28
+ playersTurnTimeout: number;
29
+ instantFinishMode: boolean;
30
+ tournamentPrizeTable: IPrizeTableData;
31
+ }
@@ -1,66 +1,71 @@
1
- import { DynamicModule, Global, Module, Provider } from '@nestjs/common';
2
- import { MongooseModule } from '@nestjs/mongoose';
3
- import {
4
- OneTableTournamentRoom,
5
- OneTableTournamentRoomSchema,
6
- OneTableTournamentRoomsRepository,
7
- User,
8
- UserSchema,
9
- UsersRepository,
10
- GameResult,
11
- GameResultSchema,
12
- GameResultRepository,
13
- } from 'jp.db.schemas';
14
-
15
- import { OneTableTournamentRoomsManagerService } from './one-table-tournament-rooms-manager.service';
16
- import { OneTableTournamentRoomsManagerOptions } from './one-table-tournament-rooms-manager.interfaces';
17
- import { ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS } from './one-table-tournament-rooms-manager.constants';
18
-
19
- @Global()
20
- @Module({
21
- imports: [
22
- MongooseModule.forFeature([
23
- {
24
- name: OneTableTournamentRoom.name,
25
- schema: OneTableTournamentRoomSchema,
26
- },
27
- ]),
28
- MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
29
- MongooseModule.forFeature([
30
- { name: GameResult.name, schema: GameResultSchema },
31
- ]),
32
- ],
33
- providers: [
34
- OneTableTournamentRoomsRepository,
35
- UsersRepository,
36
- OneTableTournamentRoomsManagerService,
37
- GameResultRepository,
38
- ],
39
- exports: [OneTableTournamentRoomsManagerService],
40
- })
41
- export class OneTableTournamentRoomsManagerModule {
42
- constructor(
43
- private readonly managerService: OneTableTournamentRoomsManagerService,
44
- ) {}
45
-
46
- static forRootAsync(
47
- options: OneTableTournamentRoomsManagerOptions,
48
- ): DynamicModule {
49
- return {
50
- module: OneTableTournamentRoomsManagerModule,
51
- imports: options.imports ?? [],
52
- providers: [
53
- {
54
- provide: ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS,
55
- useFactory: options.useFactory,
56
- inject: options.inject || [],
57
- } as Provider,
58
- ],
59
- };
60
- }
61
-
62
- async onModuleInit() {
63
- await this.managerService.createMasterTournament();
64
- await this.managerService.hydrateTournamentsFromDB();
65
- }
66
- }
1
+ import { DynamicModule, Global, Module, Provider } from '@nestjs/common';
2
+ import { MongooseModule } from '@nestjs/mongoose';
3
+ import {
4
+ OneTableTournamentRoom,
5
+ OneTableTournamentRoomSchema,
6
+ OneTableTournamentRoomsRepository,
7
+ User,
8
+ UserSchema,
9
+ UsersRepository,
10
+ GameResult,
11
+ GameResultSchema,
12
+ GameResultRepository,
13
+ Rating,
14
+ RatingSchema,
15
+ RatingRepository,
16
+ } from 'jp.db.schemas';
17
+
18
+ import { OneTableTournamentRoomsManagerService } from './one-table-tournament-rooms-manager.service';
19
+ import { OneTableTournamentRoomsManagerOptions } from './one-table-tournament-rooms-manager.interfaces';
20
+ import { ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS } from './one-table-tournament-rooms-manager.constants';
21
+
22
+ @Global()
23
+ @Module({
24
+ imports: [
25
+ MongooseModule.forFeature([
26
+ {
27
+ name: OneTableTournamentRoom.name,
28
+ schema: OneTableTournamentRoomSchema,
29
+ },
30
+ ]),
31
+ MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
32
+ MongooseModule.forFeature([
33
+ { name: GameResult.name, schema: GameResultSchema },
34
+ ]),
35
+ MongooseModule.forFeature([{ name: Rating.name, schema: RatingSchema }]),
36
+ ],
37
+ providers: [
38
+ OneTableTournamentRoomsRepository,
39
+ UsersRepository,
40
+ OneTableTournamentRoomsManagerService,
41
+ GameResultRepository,
42
+ RatingRepository,
43
+ ],
44
+ exports: [OneTableTournamentRoomsManagerService],
45
+ })
46
+ export class OneTableTournamentRoomsManagerModule {
47
+ constructor(
48
+ private readonly managerService: OneTableTournamentRoomsManagerService,
49
+ ) {}
50
+
51
+ static forRootAsync(
52
+ options: OneTableTournamentRoomsManagerOptions,
53
+ ): DynamicModule {
54
+ return {
55
+ module: OneTableTournamentRoomsManagerModule,
56
+ imports: options.imports ?? [],
57
+ providers: [
58
+ {
59
+ provide: ONE_TABLE_TOURNAMENT_ROOMS_MANAGER_OPTIONS,
60
+ useFactory: options.useFactory,
61
+ inject: options.inject || [],
62
+ } as Provider,
63
+ ],
64
+ };
65
+ }
66
+
67
+ async onModuleInit() {
68
+ await this.managerService.createMasterTournament();
69
+ await this.managerService.hydrateTournamentsFromDB();
70
+ }
71
+ }