jp.ms.common.modules 1.0.34 → 1.0.35

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 (259) hide show
  1. package/dist/config/cors.js.map +1 -1
  2. package/dist/config/database.js +1 -1
  3. package/dist/config/database.js.map +1 -1
  4. package/dist/config/locale.js +3 -3
  5. package/dist/config/locale.js.map +1 -1
  6. package/dist/config/menu.js +1 -1
  7. package/dist/config/menu.js.map +1 -1
  8. package/dist/dto/app-screen/app-screen-field-list-item.dto.js.map +1 -1
  9. package/dist/dto/app-screen/app-screen-field.dto.js.map +1 -1
  10. package/dist/dto/app-screen/app-screen-section-list-item.dto.js.map +1 -1
  11. package/dist/dto/app-screen/app-screen.dto.js +3 -1
  12. package/dist/dto/app-screen/app-screen.dto.js.map +1 -1
  13. package/dist/dto/app-screen/base-app-screen.dto.js +3 -1
  14. package/dist/dto/app-screen/base-app-screen.dto.js.map +1 -1
  15. package/dist/dto/app-table/card.dto.js.map +1 -1
  16. package/dist/dto/app-table/cards-deck.dto.d.ts +2 -2
  17. package/dist/dto/app-table/cards-deck.dto.js.map +1 -1
  18. package/dist/dto/app-table/cards-player.dto.js.map +1 -1
  19. package/dist/dto/common/find-free-table.dto.js.map +1 -1
  20. package/dist/dto/common/join-tournament.dto.js.map +1 -1
  21. package/dist/dto/common/many-tables-tournament-create.dto.js +3 -1
  22. package/dist/dto/common/many-tables-tournament-create.dto.js.map +1 -1
  23. package/dist/dto/common/player-check-state.dto.js.map +1 -1
  24. package/dist/dto/common/player-connected.dto.js.map +1 -1
  25. package/dist/dto/games/fool/fool-player.dto.d.ts +1 -1
  26. package/dist/dto/games/fool/fool-player.dto.js.map +1 -1
  27. package/dist/dto/games/fool/fool-table.dto.d.ts +4 -4
  28. package/dist/dto/games/fool/fool-table.dto.js +3 -1
  29. package/dist/dto/games/fool/fool-table.dto.js.map +1 -1
  30. package/dist/dto/index.js.map +1 -1
  31. package/dist/exception/error-code.enum.js.map +1 -1
  32. package/dist/exception/global-exception-filter.js +3 -9
  33. package/dist/exception/global-exception-filter.js.map +1 -1
  34. package/dist/exception/http-exception-wth-snackbar.js.map +1 -1
  35. package/dist/exception/index.js.map +1 -1
  36. package/dist/exception/not-enough-money-for-purchase.exception.js.map +1 -1
  37. package/dist/exception/not-found-free-room-for-fast-game.exception.js.map +1 -1
  38. package/dist/modules/anti-freeze-system/anti-freeze-system.module.d.ts +1 -1
  39. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js +2 -4
  40. package/dist/modules/anti-freeze-system/anti-freeze-system.module.js.map +1 -1
  41. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js +4 -2
  42. package/dist/modules/anti-freeze-system/anti-freeze-system.service.js.map +1 -1
  43. package/dist/modules/base-achievements/base-achievements.module.d.ts +1 -1
  44. package/dist/modules/base-achievements/base-achievements.module.js +24 -16
  45. package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
  46. package/dist/modules/event-bus/events-bus.app.subscribe.service.js.map +1 -1
  47. package/dist/modules/event-bus/events-bus.main-tables.subscribe.service.d.ts +1 -1
  48. package/dist/modules/event-bus/events-bus.main-tables.subscribe.service.js.map +1 -1
  49. package/dist/modules/event-bus/events-bus.module.js +1 -1
  50. package/dist/modules/event-bus/events-bus.module.js.map +1 -1
  51. package/dist/modules/event-bus/events-bus.tournament.subscribe.service.js.map +1 -1
  52. package/dist/modules/events/events.gateway.js.map +1 -1
  53. package/dist/modules/events/events.module.js.map +1 -1
  54. package/dist/modules/index.d.ts +2 -2
  55. package/dist/modules/index.js.map +1 -1
  56. package/dist/modules/logger/jp-logger.module.js.map +1 -1
  57. package/dist/modules/logger/jp-logger.service.d.ts +1 -1
  58. package/dist/modules/logger/jp-logger.service.js +1 -1
  59. package/dist/modules/logger/jp-logger.service.js.map +1 -1
  60. package/dist/modules/main/main-tables-list-screen.view.d.ts +2 -2
  61. package/dist/modules/main/main-tables-list-screen.view.js +32 -13
  62. package/dist/modules/main/main-tables-list-screen.view.js.map +1 -1
  63. package/dist/modules/main/main.controller.js.map +1 -1
  64. package/dist/modules/main/main.module.d.ts +1 -1
  65. package/dist/modules/main/main.module.js +8 -8
  66. package/dist/modules/main/main.module.js.map +1 -1
  67. package/dist/modules/main/main.service.js +5 -2
  68. package/dist/modules/main/main.service.js.map +1 -1
  69. package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.d.ts +2 -2
  70. package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js +20 -10
  71. package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js.map +1 -1
  72. package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.d.ts +2 -2
  73. package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js +7 -2
  74. package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js.map +1 -1
  75. package/dist/modules/many-tables-tournament/many-tables-tournament.constants.js.map +1 -1
  76. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +3 -3
  77. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +5 -7
  78. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
  79. package/dist/modules/many-tables-tournament/many-tables-tournament.module.d.ts +1 -1
  80. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +11 -3
  81. package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
  82. package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +1 -1
  83. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +3 -2
  84. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  85. package/dist/modules/menu/menu-screen.view.d.ts +2 -2
  86. package/dist/modules/menu/menu-screen.view.js +1 -1
  87. package/dist/modules/menu/menu-screen.view.js.map +1 -1
  88. package/dist/modules/menu/menu.controller.js.map +1 -1
  89. package/dist/modules/menu/menu.module.js.map +1 -1
  90. package/dist/modules/menu/menu.service.js +1 -1
  91. package/dist/modules/menu/menu.service.js.map +1 -1
  92. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.d.ts +2 -2
  93. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js +18 -10
  94. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js.map +1 -1
  95. package/dist/modules/one-table-tournament/one-table-tournament.constants.js.map +1 -1
  96. package/dist/modules/one-table-tournament/one-table-tournament.controller.js.map +1 -1
  97. package/dist/modules/one-table-tournament/one-table-tournament.module.d.ts +1 -1
  98. package/dist/modules/one-table-tournament/one-table-tournament.module.js +11 -3
  99. package/dist/modules/one-table-tournament/one-table-tournament.module.js.map +1 -1
  100. package/dist/modules/one-table-tournament/one-table-tournament.service.js.map +1 -1
  101. package/dist/modules/players-manager/players-manager.module.js +1 -1
  102. package/dist/modules/players-manager/players-manager.module.js.map +1 -1
  103. package/dist/modules/players-manager/players-manager.service.js.map +1 -1
  104. package/dist/modules/simple-rooms/simple-rooms.controller.js.map +1 -1
  105. package/dist/modules/simple-rooms/simple-rooms.module.js +4 -3
  106. package/dist/modules/simple-rooms/simple-rooms.module.js.map +1 -1
  107. package/dist/modules/simple-rooms/simple-rooms.service.js.map +1 -1
  108. package/dist/modules/simple-rooms-manager/simple-rooms-manager.constants.js.map +1 -1
  109. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js +6 -2
  110. package/dist/modules/simple-rooms-manager/simple-rooms-manager.module.js.map +1 -1
  111. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +10 -5
  112. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  113. package/dist/modules/support/dump.service.d.ts +1 -1
  114. package/dist/modules/support/dump.service.js +2 -3
  115. package/dist/modules/support/dump.service.js.map +1 -1
  116. package/dist/modules/support/metric.service.d.ts +1 -1
  117. package/dist/modules/support/metric.service.js +1 -1
  118. package/dist/modules/support/metric.service.js.map +1 -1
  119. package/dist/modules/support/support.controller.d.ts +2 -2
  120. package/dist/modules/support/support.controller.js +7 -7
  121. package/dist/modules/support/support.controller.js.map +1 -1
  122. package/dist/modules/support/support.module.js.map +1 -1
  123. package/dist/modules/support/support.service.d.ts +1 -1
  124. package/dist/modules/support/support.service.js +7 -3
  125. package/dist/modules/support/support.service.js.map +1 -1
  126. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.constants.js.map +1 -1
  127. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js +12 -3
  128. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js.map +1 -1
  129. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js +15 -10
  130. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js.map +1 -1
  131. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.constants.js.map +1 -1
  132. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.module.js +9 -2
  133. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.module.js.map +1 -1
  134. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js +6 -6
  135. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js.map +1 -1
  136. package/dist/tsconfig.tsbuildinfo +1 -1
  137. package/dist/utils/date.js.map +1 -1
  138. package/dist/utils/game-table-result.js +17 -5
  139. package/dist/utils/game-table-result.js.map +1 -1
  140. package/dist/views/index.js.map +1 -1
  141. package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.d.ts +1 -1
  142. package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.js.map +1 -1
  143. package/dist/views/one-table-tournament-conifrm-exit-dialog.view.d.ts +1 -1
  144. package/dist/views/one-table-tournament-conifrm-exit-dialog.view.js.map +1 -1
  145. package/dist/views/simple-room-conifrm-exit-dialog.view.d.ts +1 -1
  146. package/dist/views/simple-room-conifrm-exit-dialog.view.js.map +1 -1
  147. package/dist/views/table-summary.view.d.ts +2 -2
  148. package/dist/views/table-summary.view.js +17 -5
  149. package/dist/views/table-summary.view.js.map +1 -1
  150. package/dist/views/tournament-buy-ticket-dialog.view.d.ts +1 -1
  151. package/dist/views/tournament-buy-ticket-dialog.view.js +7 -1
  152. package/dist/views/tournament-buy-ticket-dialog.view.js.map +1 -1
  153. package/package.json +16 -6
  154. package/src/config/cert.ts +1 -1
  155. package/src/config/cors.ts +2 -2
  156. package/src/config/database.ts +10 -8
  157. package/src/config/locale.ts +23 -18
  158. package/src/config/menu.ts +5 -5
  159. package/src/dto/app-screen/app-screen-field-list-item.dto.ts +33 -33
  160. package/src/dto/app-screen/app-screen-field.dto.ts +45 -45
  161. package/src/dto/app-screen/app-screen-section-list-item.dto.ts +84 -84
  162. package/src/dto/app-screen/app-screen.dto.ts +3 -1
  163. package/src/dto/app-screen/base-app-screen.dto.ts +3 -1
  164. package/src/dto/app-table/card.dto.ts +7 -1
  165. package/src/dto/app-table/cards-deck.dto.ts +18 -18
  166. package/src/dto/app-table/cards-player.dto.ts +5 -5
  167. package/src/dto/app-table/index.ts +1 -1
  168. package/src/dto/common/find-free-table.dto.ts +1 -1
  169. package/src/dto/common/index.ts +1 -1
  170. package/src/dto/common/join-tournament.dto.ts +25 -22
  171. package/src/dto/common/log.dto.ts +4 -4
  172. package/src/dto/common/many-tables-tournament-create.dto.ts +4 -2
  173. package/src/dto/common/player-check-state.dto.ts +25 -22
  174. package/src/dto/common/player-connected.dto.ts +45 -45
  175. package/src/dto/games/fool/fool-player.dto.ts +2 -2
  176. package/src/dto/games/fool/fool-table.dto.ts +65 -63
  177. package/src/dto/games/index.ts +1 -1
  178. package/src/dto/index.ts +3 -3
  179. package/src/exception/error-code.enum.ts +3 -3
  180. package/src/exception/global-exception-filter.ts +26 -23
  181. package/src/exception/http-exception-wth-snackbar.ts +18 -14
  182. package/src/exception/index.ts +2 -2
  183. package/src/exception/not-enough-money-for-purchase.exception.ts +8 -9
  184. package/src/exception/not-found-free-room-for-fast-game.exception.ts +8 -9
  185. package/src/index.ts +1 -1
  186. package/src/modules/anti-freeze-system/anti-freeze-system.interfaces.ts +8 -5
  187. package/src/modules/anti-freeze-system/anti-freeze-system.module.ts +48 -40
  188. package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +81 -70
  189. package/src/modules/base-achievements/base-achievements.module.ts +198 -61
  190. package/src/modules/base-achievements/index.ts +1 -1
  191. package/src/modules/event-bus/events-bus.app.subscribe.service.ts +11 -12
  192. package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +24 -24
  193. package/src/modules/event-bus/events-bus.many-tables-tournament.subscribe.service.ts +2 -2
  194. package/src/modules/event-bus/events-bus.module.ts +2 -2
  195. package/src/modules/event-bus/events-bus.one-table-tournament.subscribe.service.ts +2 -2
  196. package/src/modules/event-bus/events-bus.tournament.subscribe.service.ts +11 -12
  197. package/src/modules/event-bus/index.ts +1 -1
  198. package/src/modules/events/events.gateway.ts +51 -49
  199. package/src/modules/events/events.interfaces.ts +6 -5
  200. package/src/modules/events/events.module.ts +18 -19
  201. package/src/modules/index.ts +13 -7
  202. package/src/modules/logger/jp-logger.module.ts +2 -2
  203. package/src/modules/logger/jp-logger.service.ts +28 -22
  204. package/src/modules/main/main-tables-list-screen.view.ts +247 -201
  205. package/src/modules/main/main.controller.ts +64 -43
  206. package/src/modules/main/main.interfaces.ts +6 -4
  207. package/src/modules/main/main.module.ts +56 -39
  208. package/src/modules/main/main.service.ts +149 -105
  209. package/src/modules/many-tables-tournament/index.ts +1 -1
  210. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +129 -111
  211. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +57 -55
  212. package/src/modules/many-tables-tournament/many-tables-tournament.constants.ts +3 -1
  213. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +131 -92
  214. package/src/modules/many-tables-tournament/many-tables-tournament.interfaces.ts +8 -5
  215. package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +62 -35
  216. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +161 -126
  217. package/src/modules/menu/menu-screen.view.ts +64 -63
  218. package/src/modules/menu/menu.controller.ts +5 -6
  219. package/src/modules/menu/menu.interfaces.ts +6 -4
  220. package/src/modules/menu/menu.module.ts +28 -22
  221. package/src/modules/menu/menu.service.ts +21 -21
  222. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +147 -138
  223. package/src/modules/one-table-tournament/one-table-tournament.constants.ts +3 -1
  224. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +91 -60
  225. package/src/modules/one-table-tournament/one-table-tournament.interfaces.ts +8 -5
  226. package/src/modules/one-table-tournament/one-table-tournament.module.ts +58 -35
  227. package/src/modules/one-table-tournament/one-table-tournament.service.ts +103 -79
  228. package/src/modules/players-manager/players-manager.module.ts +1 -2
  229. package/src/modules/players-manager/players-manager.service.ts +5 -5
  230. package/src/modules/simple-rooms/simple-rooms.controller.ts +52 -43
  231. package/src/modules/simple-rooms/simple-rooms.interfaces.ts +8 -5
  232. package/src/modules/simple-rooms/simple-rooms.module.ts +26 -23
  233. package/src/modules/simple-rooms/simple-rooms.service.ts +62 -57
  234. package/src/modules/simple-rooms-manager/simple-rooms-manager.constants.ts +3 -1
  235. package/src/modules/simple-rooms-manager/simple-rooms-manager.interfaces.ts +10 -7
  236. package/src/modules/simple-rooms-manager/simple-rooms-manager.module.ts +44 -42
  237. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +163 -149
  238. package/src/modules/support/dump.service.ts +4 -5
  239. package/src/modules/support/metric.service.ts +29 -29
  240. package/src/modules/support/support.controller.ts +57 -48
  241. package/src/modules/support/support.module.ts +8 -9
  242. package/src/modules/support/support.service.ts +15 -12
  243. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.constants.ts +3 -1
  244. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.interfaces.ts +18 -9
  245. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.ts +71 -52
  246. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.ts +313 -266
  247. package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.constants.ts +3 -1
  248. package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.interfaces.ts +16 -9
  249. package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.module.ts +50 -43
  250. package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts +63 -43
  251. package/src/utils/date.ts +4 -4
  252. package/src/utils/game-table-result.ts +110 -91
  253. package/src/views/index.ts +1 -1
  254. package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +33 -17
  255. package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +33 -17
  256. package/src/views/simple-room-conifrm-exit-dialog.view.ts +33 -17
  257. package/src/views/table-summary.view.ts +89 -76
  258. package/src/views/tournament-buy-ticket-dialog.view.ts +30 -17
  259. package/readme.md +0 -3
@@ -1,8 +1,9 @@
1
- import { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';
2
1
  import {
3
- IBaseMoveData,
4
- IAppTableState,
5
- } from 'jp.common.models';
2
+ Inject,
3
+ Injectable,
4
+ InternalServerErrorException,
5
+ } from '@nestjs/common';
6
+ import { IBaseMoveData, IAppTableState } from 'jp.common.models';
6
7
 
7
8
  import { SimpleRoomsManagerService } from '../simple-rooms-manager';
8
9
  import { PlayersManagerService } from '../players-manager';
@@ -12,79 +13,83 @@ import { SimpleRoomsFactoryOptions } from './simple-rooms.interfaces';
12
13
 
13
14
  @Injectable()
14
15
  export class SimpleRoomsService {
15
- constructor (
16
- private readonly simpleRoomsManager: SimpleRoomsManagerService,
17
- private readonly playersManager: PlayersManagerService,
18
- @Inject(SIMPLE_ROOMS_OPTIONS) private readonly options: SimpleRoomsFactoryOptions,
19
- ) {
16
+ constructor(
17
+ private readonly simpleRoomsManager: SimpleRoomsManagerService,
18
+ private readonly playersManager: PlayersManagerService,
19
+ @Inject(SIMPLE_ROOMS_OPTIONS)
20
+ private readonly options: SimpleRoomsFactoryOptions,
21
+ ) {}
22
+
23
+ watchTheTable(tableId: string, clientAuthToken: string): IAppTableState {
24
+ const player = this.playersManager.getPlayerById(clientAuthToken);
25
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
26
+ const master = room?.getMasterById(tableId);
27
+
28
+ if (player && room && master) {
29
+ room.handleWatchTheTable(player, tableId);
30
+
31
+ return master.createGameStateDto(player);
20
32
  }
21
33
 
22
- watchTheTable (tableId: string, clientAuthToken: string): IAppTableState {
23
- const player = this.playersManager.getPlayerById(clientAuthToken);
24
- const room = this.simpleRoomsManager.getRoomByTableId(tableId);
25
- const master = room?.getMasterById(tableId);
34
+ throw new InternalServerErrorException();
35
+ }
26
36
 
27
- if (player && room && master) {
28
- room.handleWatchTheTable(player, tableId);
37
+ enterTheTable(tableId: string, clientAuthToken: string): IAppTableState {
38
+ const player = this.playersManager.getPlayerById(clientAuthToken);
39
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
40
+ const master = room?.getMasterById(tableId);
29
41
 
30
- return master.createGameStateDto(player);
31
- }
42
+ if (player && room && master) {
43
+ room.handleEnterTheTable(player, tableId);
32
44
 
33
- throw new InternalServerErrorException();
45
+ return master.createGameStateDto(player);
34
46
  }
35
47
 
36
- enterTheTable (tableId: string, clientAuthToken: string): IAppTableState {
37
- const player = this.playersManager.getPlayerById(clientAuthToken);
38
- const room = this.simpleRoomsManager.getRoomByTableId(tableId);
39
- const master = room?.getMasterById(tableId);
48
+ throw new InternalServerErrorException();
49
+ }
40
50
 
41
- if (player && room && master) {
42
- room.handleEnterTheTable(player, tableId);
51
+ exitTheTable(tableId: string, clientAuthToken: string): IAppTableState {
52
+ const player = this.playersManager.getPlayerById(clientAuthToken);
53
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
54
+ const master = room?.getMasterById(tableId);
43
55
 
44
- return master.createGameStateDto(player);
45
- }
56
+ if (player && room && master) {
57
+ room.handleExitTheTable(player, tableId);
46
58
 
47
- throw new InternalServerErrorException();
59
+ return master.createGameStateDto(player);
48
60
  }
49
61
 
50
- exitTheTable (tableId: string, clientAuthToken: string): IAppTableState {
51
- const player = this.playersManager.getPlayerById(clientAuthToken);
52
- const room = this.simpleRoomsManager.getRoomByTableId(tableId);
53
- const master = room?.getMasterById(tableId);
62
+ throw new InternalServerErrorException();
63
+ }
54
64
 
55
- if (player && room && master) {
56
- room.handleExitTheTable(player, tableId);
65
+ moveOnTheTable(
66
+ tableId: string,
67
+ clientAuthToken: string,
68
+ moveDto: IBaseMoveData,
69
+ ): IAppTableState {
70
+ const player = this.playersManager.getPlayerById(clientAuthToken);
71
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
72
+ const master = room?.getMasterById(tableId);
57
73
 
58
- return master.createGameStateDto(player);
59
- }
74
+ if (player && room && master) {
75
+ room.handleMoveOnTheTable(player, tableId, moveDto);
60
76
 
61
- throw new InternalServerErrorException();
77
+ return master.createGameStateDto(player);
62
78
  }
63
79
 
64
- moveOnTheTable (tableId: string, clientAuthToken: string, moveDto: IBaseMoveData): IAppTableState {
65
- const player = this.playersManager.getPlayerById(clientAuthToken);
66
- const room = this.simpleRoomsManager.getRoomByTableId(tableId);
67
- const master = room?.getMasterById(tableId);
80
+ throw new InternalServerErrorException();
81
+ }
68
82
 
69
- if (player && room && master) {
70
- room.handleMoveOnTheTable(player, tableId, moveDto);
83
+ restartTable(tableId: string): boolean {
84
+ const room = this.simpleRoomsManager.getRoomByTableId(tableId);
85
+ const master = room?.getMasterById(tableId);
71
86
 
72
- return master.createGameStateDto(player);
73
- }
87
+ if (room && master) {
88
+ room.handleRestartTable(tableId);
74
89
 
75
- throw new InternalServerErrorException();
90
+ return true;
76
91
  }
77
92
 
78
- restartTable (tableId: string): boolean {
79
- const room = this.simpleRoomsManager.getRoomByTableId(tableId);
80
- const master = room?.getMasterById(tableId);
81
-
82
- if (room && master) {
83
- room.handleRestartTable(tableId);
84
-
85
- return true;
86
- }
87
-
88
- throw new InternalServerErrorException();
89
- }
93
+ throw new InternalServerErrorException();
94
+ }
90
95
  }
@@ -1 +1,3 @@
1
- export const SIMPLE_ROOMS_MANAGER_OPTIONS = Symbol('SIMPLE_ROOMS_MANAGER_OPTIONS');
1
+ export const SIMPLE_ROOMS_MANAGER_OPTIONS = Symbol(
2
+ 'SIMPLE_ROOMS_MANAGER_OPTIONS',
3
+ );
@@ -6,14 +6,17 @@ import { ForwardReference } from '@nestjs/common/interfaces/modules/forward-refe
6
6
  import { GameRoomConfig, SimpleRoom } from 'jp.ms.common.engine';
7
7
  import { ConfigService } from '@nestjs/config';
8
8
 
9
- export interface SimpleRoomsManagerOptions extends Pick<ModuleMetadata, 'imports'> {
10
- imports?: Array<Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference>;
11
- inject?: any[];
12
- useFactory?: (...args: any[]) => Promise<any> | any;
9
+ export interface SimpleRoomsManagerOptions
10
+ extends Pick<ModuleMetadata, 'imports'> {
11
+ imports?: Array<
12
+ Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference
13
+ >;
14
+ inject?: any[];
15
+ useFactory?: (...args: any[]) => Promise<any> | any;
13
16
  }
14
17
 
15
18
  export interface SimpleRoomsFactoryOptions {
16
- i18n: I18nService;
17
- configService: ConfigService;
18
- createRoom (room: GameRoomConfig): SimpleRoom;
19
+ i18n: I18nService;
20
+ configService: ConfigService;
21
+ createRoom(room: GameRoomConfig): SimpleRoom;
19
22
  }
@@ -1,15 +1,15 @@
1
1
  import { DynamicModule, Global, Module, Provider } from '@nestjs/common';
2
2
  import { MongooseModule } from '@nestjs/mongoose';
3
3
  import {
4
- SimpleRoom,
5
- SimpleRoomSchema,
6
- SimpleRoomsRepository,
7
- User,
8
- UserSchema,
9
- UsersRepository,
10
- GameResult,
11
- GameResultSchema,
12
- GameResultRepository,
4
+ SimpleRoom,
5
+ SimpleRoomSchema,
6
+ SimpleRoomsRepository,
7
+ User,
8
+ UserSchema,
9
+ UsersRepository,
10
+ GameResult,
11
+ GameResultSchema,
12
+ GameResultRepository,
13
13
  } from 'jp.db.schemas';
14
14
 
15
15
  import { SimpleRoomsManagerService } from './simple-rooms-manager.service';
@@ -18,41 +18,43 @@ import { SIMPLE_ROOMS_MANAGER_OPTIONS } from './simple-rooms-manager.constants';
18
18
 
19
19
  @Global()
20
20
  @Module({
21
- imports: [
22
- MongooseModule.forFeature([{name: SimpleRoom.name, schema: SimpleRoomSchema}]),
23
- MongooseModule.forFeature([{name: User.name, schema: UserSchema}]),
24
- MongooseModule.forFeature([{name: GameResult.name, schema: GameResultSchema}]),
25
- ],
26
- providers: [
27
- SimpleRoomsRepository,
28
- UsersRepository,
29
- GameResultRepository,
30
- SimpleRoomsManagerService,
31
- ],
32
- exports: [SimpleRoomsManagerService],
21
+ imports: [
22
+ MongooseModule.forFeature([
23
+ { name: SimpleRoom.name, schema: SimpleRoomSchema },
24
+ ]),
25
+ MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
26
+ MongooseModule.forFeature([
27
+ { name: GameResult.name, schema: GameResultSchema },
28
+ ]),
29
+ ],
30
+ providers: [
31
+ SimpleRoomsRepository,
32
+ UsersRepository,
33
+ GameResultRepository,
34
+ SimpleRoomsManagerService,
35
+ ],
36
+ exports: [SimpleRoomsManagerService],
33
37
  })
34
38
  export class SimpleRoomsManagerModule {
35
- constructor (
36
- private readonly simpleRoomsManagerService: SimpleRoomsManagerService,
37
- ) {
38
- }
39
+ constructor(
40
+ private readonly simpleRoomsManagerService: SimpleRoomsManagerService,
41
+ ) {}
39
42
 
40
- static forRootAsync (options: SimpleRoomsManagerOptions): DynamicModule {
41
- return {
42
- module: SimpleRoomsManagerModule,
43
- imports: options.imports ?? [],
44
- providers: [
45
- {
46
- provide: SIMPLE_ROOMS_MANAGER_OPTIONS,
47
- useFactory: options.useFactory,
48
- inject: options.inject || [],
49
- } as Provider,
50
- ],
51
- };
52
- }
43
+ static forRootAsync(options: SimpleRoomsManagerOptions): DynamicModule {
44
+ return {
45
+ module: SimpleRoomsManagerModule,
46
+ imports: options.imports ?? [],
47
+ providers: [
48
+ {
49
+ provide: SIMPLE_ROOMS_MANAGER_OPTIONS,
50
+ useFactory: options.useFactory,
51
+ inject: options.inject || [],
52
+ } as Provider,
53
+ ],
54
+ };
55
+ }
53
56
 
54
- async onModuleInit () {
55
- await this.simpleRoomsManagerService.hydrateRoomsFromDB();
56
- }
57
+ async onModuleInit() {
58
+ await this.simpleRoomsManagerService.hydrateRoomsFromDB();
59
+ }
57
60
  }
58
-
@@ -2,22 +2,22 @@ import { Inject, Injectable } from '@nestjs/common';
2
2
  import { InjectConnection } from '@nestjs/mongoose';
3
3
  import { Connection } from 'mongoose';
4
4
  import {
5
- BaseGameEvent,
6
- GameMaster,
7
- MinPlayersStartStrategy,
8
- SimpleRoom,
9
- GameRoomConfig,
10
- RoomUpdateStateEvent,
11
- UserWonTheGameAppEvent,
12
- GameTableFinishedEvent,
13
- GamePlayerEnteredTheTableEvent,
14
- GamePlayerExitedTheTableEvent,
5
+ BaseGameEvent,
6
+ GameMaster,
7
+ MinPlayersStartStrategy,
8
+ SimpleRoom,
9
+ GameRoomConfig,
10
+ RoomUpdateStateEvent,
11
+ UserWonTheGameAppEvent,
12
+ GameTableFinishedEvent,
13
+ GamePlayerEnteredTheTableEvent,
14
+ GamePlayerExitedTheTableEvent,
15
15
  } from 'jp.ms.common.engine';
16
16
  import {
17
- GameResultRepository,
18
- SimpleRoomDocument,
19
- SimpleRoomsRepository,
20
- UsersRepository
17
+ GameResultRepository,
18
+ SimpleRoomDocument,
19
+ SimpleRoomsRepository,
20
+ UsersRepository,
21
21
  } from 'jp.db.schemas';
22
22
 
23
23
  import { JpLoggerService } from '../logger/jp-logger.service';
@@ -30,150 +30,164 @@ import { SimpleRoomsFactoryOptions } from './simple-rooms-manager.interfaces';
30
30
 
31
31
  @Injectable()
32
32
  export class SimpleRoomsManagerService {
33
- private readonly rooms: Map<string, SimpleRoom>;
34
-
35
- constructor(
36
- private readonly roomsRepository: SimpleRoomsRepository,
37
- private readonly usersRepository: UsersRepository,
38
- private readonly gameResultRepository: GameResultRepository,
39
- private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
40
- private readonly eventsBusAppSubscribeService: EventsBusAppSubscribeService,
41
- @Inject(SIMPLE_ROOMS_MANAGER_OPTIONS) private readonly options: SimpleRoomsFactoryOptions,
42
- @InjectConnection() private readonly connection: Connection,
43
- @Inject() private readonly logger: JpLoggerService,
44
- ) {
45
- this.rooms = new Map<string, SimpleRoom>();
46
- }
47
-
48
- get gameType () {
49
- return this.options.configService.get<string>('GAME_TYPE') || '';
50
- }
51
-
52
- getRoomById (roomId: string): SimpleRoom | undefined {
53
- return this.rooms.get(roomId);
54
- }
55
-
56
- getRoomByTableId (tableId: string): SimpleRoom | undefined {
57
- const { roomId } = GameMaster.parseTableId(tableId);
58
-
59
- return this.getRoomById(roomId);
33
+ private readonly rooms: Map<string, SimpleRoom>;
34
+
35
+ constructor(
36
+ private readonly roomsRepository: SimpleRoomsRepository,
37
+ private readonly usersRepository: UsersRepository,
38
+ private readonly gameResultRepository: GameResultRepository,
39
+ private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
40
+ private readonly eventsBusAppSubscribeService: EventsBusAppSubscribeService,
41
+ @Inject(SIMPLE_ROOMS_MANAGER_OPTIONS)
42
+ private readonly options: SimpleRoomsFactoryOptions,
43
+ @InjectConnection() private readonly connection: Connection,
44
+ @Inject() private readonly logger: JpLoggerService,
45
+ ) {
46
+ this.rooms = new Map<string, SimpleRoom>();
47
+ }
48
+
49
+ get gameType() {
50
+ return this.options.configService.get<string>('GAME_TYPE') || '';
51
+ }
52
+
53
+ getRoomById(roomId: string): SimpleRoom | undefined {
54
+ return this.rooms.get(roomId);
55
+ }
56
+
57
+ getRoomByTableId(tableId: string): SimpleRoom | undefined {
58
+ const { roomId } = GameMaster.parseTableId(tableId);
59
+
60
+ return this.getRoomById(roomId);
61
+ }
62
+
63
+ getRooms(): Array<SimpleRoom> {
64
+ return Array.from(this.rooms.values());
65
+ }
66
+
67
+ getTables(): Array<GameMaster> {
68
+ return this.getRooms().reduce((result, currentValue) => {
69
+ return [...result, ...currentValue.getMasters()];
70
+ }, [] as Array<GameMaster>);
71
+ }
72
+
73
+ addRoom(room: SimpleRoom) {
74
+ this.rooms.set(room.getId(), room);
75
+ }
76
+
77
+ async hydrateRoomsFromDB() {
78
+ const templates = await this.roomsRepository.findRooms(this.gameType);
79
+
80
+ templates.forEach((item) => {
81
+ const newRoom = this.options.createRoom(
82
+ this.simpleRoomDocumentToRoom(item),
83
+ );
84
+ this.addRoom(newRoom);
85
+ });
86
+ }
87
+
88
+ /*
89
+ 1. Сначала ищем стол в котором один игрок
90
+ 2. Далее ищем стол за которым есть игроки и свободные места
91
+ 3. Отправляем на стол для быстрой игры если там есть места
92
+ 4. Наконец создаем стол для быстрой игры и отправляем туда
93
+ */
94
+ getFreeFastGameRoom(): GameMaster | undefined {
95
+ if (this.getRooms().some((item) => item.isTechBreak())) {
96
+ return;
60
97
  }
61
98
 
62
- getRooms (): Array<SimpleRoom> {
63
- return Array.from(this.rooms.values());
64
- }
99
+ const tables = this.getTables();
65
100
 
66
- getTables (): Array<GameMaster> {
67
- return this.getRooms().reduce(
68
- (result, currentValue) => {
69
- return [...result, ...currentValue.getMasters()];
70
- }, [] as Array<GameMaster>
71
- );
72
- }
101
+ let freeTable = tables.find(
102
+ (master) =>
103
+ master.getTable().remainOnePlayer() &&
104
+ master.getTable().getPlayers()[0].hasOpenConnection(),
105
+ );
73
106
 
74
- addRoom (room: SimpleRoom) {
75
- this.rooms.set(room.getId(), room);
107
+ if (!freeTable) {
108
+ freeTable = tables.find(
109
+ (master) =>
110
+ master.getTable().hasMinPlayers() &&
111
+ !master.getTable().isFullWithQueue(),
112
+ );
76
113
  }
77
114
 
78
- async hydrateRoomsFromDB () {
79
- const templates = await this.roomsRepository.findRooms(this.gameType);
80
-
81
- templates.forEach((item) => {
82
- const newRoom = this.options.createRoom(
83
- this.simpleRoomDocumentToRoom(item)
84
- );
85
- this.addRoom(newRoom);
86
- });
115
+ if (!freeTable) {
116
+ freeTable = tables
117
+ .filter((item) => item.getRoom().getEnableForFastGame())
118
+ .find((master) => !master.getTable().isFullWithQueue());
87
119
  }
88
120
 
89
- /*
90
- 1. Сначала ищем стол в котором один игрок
91
- 2. Далее ищем стол за которым есть игроки и свободные места
92
- 3. Отправляем на стол для быстрой игры если там есть места
93
- 4. Наконец создаем стол для быстрой игры и отправляем туда
94
- */
95
- getFreeFastGameRoom (): GameMaster | undefined {
96
- if (this.getRooms().some((item) => item.isTechBreak())) {
97
- return;
98
- }
99
-
100
- const tables = this.getTables();
101
-
102
- let freeTable = tables.find(
103
- (master) => master.getTable().remainOnePlayer() && master.getTable().getPlayers()[0].hasOpenConnection()
104
- );
105
-
106
- if (!freeTable) {
107
- freeTable = tables.find(
108
- (master) => master.getTable().hasMinPlayers() && !master.getTable().isFullWithQueue(),
109
- );
110
- }
111
-
112
- if (!freeTable) {
113
- freeTable = tables.filter((item) => item.getRoom().getEnableForFastGame()).find(
114
- (master) => !master.getTable().isFullWithQueue(),
115
- );
116
- }
117
-
118
- if (!freeTable) {
119
- const fastGameRoom = this.getRooms().find((item) => item.getEnableForFastGame());
120
- if (fastGameRoom) {
121
- freeTable = fastGameRoom.addMaster();
122
- }
123
- }
124
-
125
- return freeTable;
121
+ if (!freeTable) {
122
+ const fastGameRoom = this.getRooms().find((item) =>
123
+ item.getEnableForFastGame(),
124
+ );
125
+ if (fastGameRoom) {
126
+ freeTable = fastGameRoom.addMaster();
127
+ }
126
128
  }
127
129
 
128
- private simpleRoomDocumentToRoom (room: SimpleRoomDocument): GameRoomConfig {
129
- const restartGameTimeout = this.options.configService.get<number>('RESTART_GAME_TIMEOUT') || 0;
130
- const playersTurnTimeout = this.options.configService.get<number>('PLAYERS_TURN_TIMEOUT') || 0;
131
-
132
- return {
133
- id: room.roomId,
134
- gameType: room.gameType,
135
- roomType: room.roomType,
136
- rulesType: room.rulesType,
137
- deckType: room.deckType,
138
- tableSize: room.tableSize,
139
- bet: room.bet,
140
- ticketPrice: room.ticketPrice / 2,
141
- title: room.title,
142
- subtitle: room.subtitle,
143
- description: room.description,
144
- enableForFastGame: room.enableForFastGame,
145
- turnTimeout: playersTurnTimeout,
146
- restartTimeout: restartGameTimeout,
147
- localeService: this.options.i18n,
148
- startStrategy: new MinPlayersStartStrategy(),
149
- onRoomEvent: this.handleRoomEvent,
150
- } as GameRoomConfig;
130
+ return freeTable;
131
+ }
132
+
133
+ private simpleRoomDocumentToRoom(room: SimpleRoomDocument): GameRoomConfig {
134
+ const restartGameTimeout =
135
+ this.options.configService.get<number>('RESTART_GAME_TIMEOUT') || 0;
136
+ const playersTurnTimeout =
137
+ this.options.configService.get<number>('PLAYERS_TURN_TIMEOUT') || 0;
138
+
139
+ return {
140
+ id: room.roomId,
141
+ gameType: room.gameType,
142
+ roomType: room.roomType,
143
+ rulesType: room.rulesType,
144
+ deckType: room.deckType,
145
+ tableSize: room.tableSize,
146
+ bet: room.bet,
147
+ ticketPrice: room.ticketPrice / 2,
148
+ title: room.title,
149
+ subtitle: room.subtitle,
150
+ description: room.description,
151
+ enableForFastGame: room.enableForFastGame,
152
+ turnTimeout: playersTurnTimeout,
153
+ restartTimeout: restartGameTimeout,
154
+ localeService: this.options.i18n,
155
+ startStrategy: new MinPlayersStartStrategy(),
156
+ onRoomEvent: this.handleRoomEvent,
157
+ } as GameRoomConfig;
158
+ }
159
+
160
+ private handleRoomEvent = (event: BaseGameEvent) => {
161
+ this.logger.log(event.toLog());
162
+
163
+ if (event instanceof GameTableFinishedEvent) {
164
+ void this.handleRoomTableGameFinished(event.master);
165
+ } else if (
166
+ event instanceof GamePlayerEnteredTheTableEvent ||
167
+ event instanceof GamePlayerExitedTheTableEvent
168
+ ) {
169
+ this.handleRoomStatusUpdated(
170
+ new RoomUpdateStateEvent(event.gameType, event.roomId),
171
+ );
151
172
  }
152
-
153
- private handleRoomEvent = (event: BaseGameEvent) => {
154
- this.logger.log(event.toLog());
155
-
156
- if (event instanceof GameTableFinishedEvent) {
157
- this.handleRoomTableGameFinished(event.master!!);
158
- } else if (event instanceof GamePlayerEnteredTheTableEvent || event instanceof GamePlayerExitedTheTableEvent) {
159
- this.handleRoomStatusUpdated(new RoomUpdateStateEvent(event.gameType, event.roomId));
160
- }
161
- };
162
-
163
- private handleRoomTableGameFinished = async (master: GameMaster) => {
164
- await saveGameTablesResult(
165
- master,
166
- this.connection,
167
- this.gameResultRepository,
168
- this.usersRepository,
169
- true,
170
- );
171
-
172
- // TODO: записать разные события для достижений
173
- this.eventsBusAppSubscribeService.pushNewEvent(new UserWonTheGameAppEvent(this.gameType, '123'));
174
- };
175
-
176
- private handleRoomStatusUpdated = (event: RoomUpdateStateEvent) => {
177
- this.eventsBusMainTablesSubscribeService.pushNewRoomState(event);
178
- };
173
+ };
174
+
175
+ private handleRoomTableGameFinished = async (master: GameMaster) => {
176
+ await saveGameTablesResult(
177
+ master,
178
+ this.connection,
179
+ this.gameResultRepository,
180
+ this.usersRepository,
181
+ true,
182
+ );
183
+
184
+ // TODO: записать разные события для достижений
185
+ this.eventsBusAppSubscribeService.pushNewEvent(
186
+ new UserWonTheGameAppEvent(this.gameType, '123'),
187
+ );
188
+ };
189
+
190
+ private handleRoomStatusUpdated = (event: RoomUpdateStateEvent) => {
191
+ this.eventsBusMainTablesSubscribeService.pushNewRoomState(event);
192
+ };
179
193
  }
@@ -3,10 +3,9 @@ import v8 from 'v8';
3
3
 
4
4
  @Injectable()
5
5
  export class DumpService {
6
- constructor () {
7
- }
6
+ constructor() {}
8
7
 
9
- async getDump (): Promise<NodeJS.ReadableStream> {
10
- return v8.getHeapSnapshot();
11
- }
8
+ getDump(): NodeJS.ReadableStream {
9
+ return v8.getHeapSnapshot();
10
+ }
12
11
  }