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,322 +1,324 @@
1
- import { Global, InternalServerErrorException, Module } from '@nestjs/common';
2
- import { MongooseModule } from '@nestjs/mongoose';
3
- import {
4
- ActivityLog,
5
- ActivityLogRepository,
6
- ActivityLogSchema,
7
- User,
8
- UserSchema,
9
- UsersRepository,
10
- AchievementRepository,
11
- Achievement,
12
- AchievementSchema,
13
- UsersAchievement,
14
- UsersAchievementSchema,
15
- UsersAchievementsRepository,
16
- } from 'jp.db.schemas';
17
- import {
18
- BaseAppEvent,
19
- BaseUserAppEvent,
20
- EarnOneMillionAchievement,
21
- GotLevel10Achievement,
22
- GotLevel3Achievement,
23
- Playd10GamesAchievement,
24
- SnackbarSendToPlayerWsEvent,
25
- Take1PlaceOnManyTablesTournamentAchievement,
26
- Take2Or3PlaceOnManyTablesTournamentAchievement,
27
- UserGotNewLevelAppEvent,
28
- UserPlayedTheGameAppEvent,
29
- UserWonManyTablesTournamentAppEvent,
30
- UserWonOneTableTournamentAppEvent,
31
- UserWonTheGameAppEvent,
32
- Won3GamesAchievement,
33
- Won3ProfiAchievement,
34
- WonOneTableTournament3TimesAchievement,
35
- } from 'jp.ms.common.engine';
36
- import { AppScreenIconEnum, LanguageTypeEnum } from 'jp.common.models';
37
-
38
- import { EventsBusAppSubscribeService } from '../event-bus/events-bus.app.subscribe.service';
39
- import { PlayersManagerService } from '../players-manager';
40
-
41
- @Global()
42
- @Module({
43
- imports: [
44
- MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
45
- MongooseModule.forFeature([
46
- { name: ActivityLog.name, schema: ActivityLogSchema },
47
- ]),
48
- MongooseModule.forFeature([
49
- { name: Achievement.name, schema: AchievementSchema },
50
- ]),
51
- MongooseModule.forFeature([
52
- { name: UsersAchievement.name, schema: UsersAchievementSchema },
53
- ]),
54
- ],
55
- providers: [
56
- UsersRepository,
57
- ActivityLogRepository,
58
- AchievementRepository,
59
- UsersAchievementsRepository,
60
- EventsBusAppSubscribeService,
61
- ],
62
- })
63
- export abstract class BaseAchievementsModule {
64
- constructor(
65
- protected readonly eventsBusAppSubscribeService: EventsBusAppSubscribeService,
66
- protected readonly playersManager: PlayersManagerService,
67
- protected readonly usersRepository: UsersRepository,
68
- protected readonly activityLogRepository: ActivityLogRepository,
69
- protected readonly achievementRepository: AchievementRepository,
70
- protected readonly usersAchievementRepository: UsersAchievementsRepository,
71
- ) {}
72
-
73
- onModuleInit() {
74
- this.eventsBusAppSubscribeService.subscribe((event) => {
75
- void this.onHandleAppEvent(event);
76
- });
77
- }
78
-
79
- protected async onHandleAppEvent(event: BaseAppEvent) {
80
- if (event instanceof BaseUserAppEvent) {
81
- const userId = event.userId;
82
- const player = this.playersManager.getPlayerById(userId);
83
- const foundUser = await this.usersRepository.findById(userId);
84
- const allAchievements: Array<Achievement> =
85
- await this.achievementRepository.findAchievements(event.game);
86
- const usersAchievements: Array<UsersAchievement> =
87
- await this.usersAchievementRepository.findAchivementsByUserId(userId);
88
-
89
- if (!player || !foundUser) {
90
- throw new InternalServerErrorException();
91
- }
92
-
93
- if (event instanceof UserGotNewLevelAppEvent) {
94
- // TODO подумать куда перенести LEVEL UP
95
- player.sendMessage(
96
- new SnackbarSendToPlayerWsEvent(
97
- event.game,
98
- AppScreenIconEnum.ARROW_UPWARD,
99
- 'level up',
100
- 'buttonText',
101
- ),
102
- );
103
-
104
- if (
105
- this.userHasNoAchievement(
106
- usersAchievements,
107
- GotLevel3Achievement.code,
108
- )
109
- ) {
110
- if (new GotLevel3Achievement(event.newLevel).userGotAchievement()) {
111
- void this.giveAchievement(
112
- allAchievements,
113
- GotLevel3Achievement.code,
114
- foundUser,
115
- event.game,
116
- );
117
- }
118
- }
119
-
120
- if (
121
- this.userHasNoAchievement(
122
- usersAchievements,
123
- GotLevel10Achievement.code,
124
- )
125
- ) {
126
- if (new GotLevel10Achievement(event.newLevel).userGotAchievement()) {
127
- void this.giveAchievement(
128
- allAchievements,
129
- GotLevel10Achievement.code,
130
- foundUser,
131
- event.game,
132
- );
133
- }
134
- }
135
- } else if (event instanceof UserPlayedTheGameAppEvent) {
136
- if (
137
- this.userHasNoAchievement(
138
- usersAchievements,
139
- Playd10GamesAchievement.code,
140
- )
141
- ) {
142
- const playdGamesCount =
143
- await this.activityLogRepository.getUserPlayedGamesCount(userId);
144
-
145
- if (
146
- new Playd10GamesAchievement(playdGamesCount).userGotAchievement()
147
- ) {
148
- void this.giveAchievement(
149
- allAchievements,
150
- Playd10GamesAchievement.code,
151
- foundUser,
152
- event.game,
153
- );
154
- }
155
- }
156
- } else if (event instanceof UserWonTheGameAppEvent) {
157
- if (
158
- this.userHasNoAchievement(
159
- usersAchievements,
160
- Won3GamesAchievement.code,
161
- )
162
- ) {
163
- const wonGamesCount =
164
- await this.activityLogRepository.getUserWonGamesCount(userId);
165
-
166
- if (new Won3GamesAchievement(wonGamesCount).userGotAchievement()) {
167
- void this.giveAchievement(
168
- allAchievements,
169
- Won3GamesAchievement.code,
170
- foundUser,
171
- event.game,
172
- );
173
- }
174
- }
175
-
176
- if (
177
- this.userHasNoAchievement(
178
- usersAchievements,
179
- Won3ProfiAchievement.code,
180
- )
181
- ) {
182
- const wonProfiCount =
183
- await this.activityLogRepository.getUserWonProfiCount(userId);
184
- if (new Won3ProfiAchievement(wonProfiCount).userGotAchievement()) {
185
- void this.giveAchievement(
186
- allAchievements,
187
- Won3ProfiAchievement.code,
188
- foundUser,
189
- event.game,
190
- );
191
- }
192
- }
193
-
194
- if (
195
- this.userHasNoAchievement(
196
- usersAchievements,
197
- EarnOneMillionAchievement.code,
198
- )
199
- ) {
200
- if (
201
- new EarnOneMillionAchievement(
202
- foundUser.balance,
203
- ).userGotAchievement()
204
- ) {
205
- void this.giveAchievement(
206
- allAchievements,
207
- EarnOneMillionAchievement.code,
208
- foundUser,
209
- event.game,
210
- );
211
- }
212
- }
213
- } else if (event instanceof UserWonOneTableTournamentAppEvent) {
214
- if (
215
- this.userHasNoAchievement(
216
- usersAchievements,
217
- WonOneTableTournament3TimesAchievement.code,
218
- )
219
- ) {
220
- const wonFastTournamentCount =
221
- await this.activityLogRepository.getUserWonOneTableTournamentCount(
222
- userId,
223
- );
224
- if (
225
- new WonOneTableTournament3TimesAchievement(
226
- wonFastTournamentCount,
227
- ).userGotAchievement()
228
- ) {
229
- void this.giveAchievement(
230
- allAchievements,
231
- WonOneTableTournament3TimesAchievement.code,
232
- foundUser,
233
- event.game,
234
- );
235
- }
236
- }
237
- } else if (event instanceof UserWonManyTablesTournamentAppEvent) {
238
- if (
239
- this.userHasNoAchievement(
240
- usersAchievements,
241
- Take1PlaceOnManyTablesTournamentAchievement.code,
242
- )
243
- ) {
244
- if (
245
- new Take1PlaceOnManyTablesTournamentAchievement(
246
- event.rank,
247
- ).userGotAchievement()
248
- ) {
249
- void this.giveAchievement(
250
- allAchievements,
251
- Take1PlaceOnManyTablesTournamentAchievement.code,
252
- foundUser,
253
- event.game,
254
- );
255
- }
256
- }
257
-
258
- if (
259
- this.userHasNoAchievement(
260
- usersAchievements,
261
- Take2Or3PlaceOnManyTablesTournamentAchievement.code,
262
- )
263
- ) {
264
- if (
265
- new Take2Or3PlaceOnManyTablesTournamentAchievement(
266
- event.rank,
267
- ).userGotAchievement()
268
- ) {
269
- void this.giveAchievement(
270
- allAchievements,
271
- Take2Or3PlaceOnManyTablesTournamentAchievement.code,
272
- foundUser,
273
- event.game,
274
- );
275
- }
276
- }
277
- }
278
- }
279
- }
280
-
281
- protected userHasNoAchievement(
282
- usersAchievements: Array<UsersAchievement>,
283
- achievementCode: string,
284
- ) {
285
- return !usersAchievements.find(
286
- (item) => item.achievementCode === achievementCode,
287
- );
288
- }
289
-
290
- protected async giveAchievement(
291
- allAchievements: Array<Achievement>,
292
- achievementCode: string,
293
- user: User,
294
- game: string,
295
- ) {
296
- const foundAchievement = allAchievements.find(
297
- (item) => item.code === achievementCode,
298
- );
299
- const player = this.playersManager.getPlayerById(user.userId);
300
-
301
- if (foundAchievement && player) {
302
- await this.usersAchievementRepository.addUsersAchievement(
303
- user.userId,
304
- user.fullName,
305
- foundAchievement.achievementId,
306
- foundAchievement.title[LanguageTypeEnum.RU],
307
- foundAchievement.code,
308
- foundAchievement.prize,
309
- '',
310
- );
311
-
312
- player.sendMessage(
313
- new SnackbarSendToPlayerWsEvent(
314
- game,
315
- AppScreenIconEnum.EMOJI_EVENTS,
316
- foundAchievement.title[player.language],
317
- foundAchievement.description[player.language],
318
- ),
319
- );
320
- }
321
- }
322
- }
1
+ import { Global, InternalServerErrorException, Module } from '@nestjs/common';
2
+ import { MongooseModule } from '@nestjs/mongoose';
3
+ import {
4
+ ActivityLog,
5
+ ActivityLogRepository,
6
+ ActivityLogSchema,
7
+ User,
8
+ UserSchema,
9
+ UsersRepository,
10
+ AchievementRepository,
11
+ Achievement,
12
+ AchievementSchema,
13
+ UsersAchievement,
14
+ UsersAchievementSchema,
15
+ UsersAchievementsRepository,
16
+ } from 'jp.db.schemas';
17
+ import {
18
+ BaseAppEvent,
19
+ BaseUserAppEvent,
20
+ EarnOneMillionAchievement,
21
+ GotLevel10Achievement,
22
+ GotLevel3Achievement,
23
+ Playd10GamesAchievement,
24
+ SnackbarSendToPlayerWsEvent,
25
+ Take1PlaceOnManyTablesTournamentAchievement,
26
+ Take2Or3PlaceOnManyTablesTournamentAchievement,
27
+ UserGotNewLevelAppEvent,
28
+ UserPlayedTheGameAppEvent,
29
+ UserWonManyTablesTournamentAppEvent,
30
+ UserWonOneTableTournamentAppEvent,
31
+ UserWonTheGameAppEvent,
32
+ Won3GamesAchievement,
33
+ Won3ProfiAchievement,
34
+ WonOneTableTournament3TimesAchievement,
35
+ } from 'jp.ms.common.engine';
36
+ import { AppScreenIconEnum, LanguageTypeEnum } from 'jp.common.models';
37
+
38
+ import { EventsBusAppSubscribeService } from '../event-bus/events-bus.app.subscribe.service';
39
+ import { PlayersManagerService } from '../players-manager';
40
+
41
+ @Global()
42
+ @Module({
43
+ imports: [
44
+ MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
45
+ MongooseModule.forFeature([
46
+ { name: ActivityLog.name, schema: ActivityLogSchema },
47
+ ]),
48
+ MongooseModule.forFeature([
49
+ { name: Achievement.name, schema: AchievementSchema },
50
+ ]),
51
+ MongooseModule.forFeature([
52
+ { name: UsersAchievement.name, schema: UsersAchievementSchema },
53
+ ]),
54
+ ],
55
+ providers: [
56
+ UsersRepository,
57
+ ActivityLogRepository,
58
+ AchievementRepository,
59
+ UsersAchievementsRepository,
60
+ EventsBusAppSubscribeService,
61
+ ],
62
+ })
63
+ export abstract class BaseAchievementsModule {
64
+ constructor(
65
+ protected readonly eventsBusAppSubscribeService: EventsBusAppSubscribeService,
66
+ protected readonly playersManager: PlayersManagerService,
67
+ protected readonly usersRepository: UsersRepository,
68
+ protected readonly activityLogRepository: ActivityLogRepository,
69
+ protected readonly achievementRepository: AchievementRepository,
70
+ protected readonly usersAchievementRepository: UsersAchievementsRepository,
71
+ ) {}
72
+
73
+ onModuleInit() {
74
+ this.eventsBusAppSubscribeService.subscribe((event) => {
75
+ void this.onHandleAppEvent(event);
76
+ });
77
+ }
78
+
79
+ protected async onHandleAppEvent(event: BaseAppEvent) {
80
+ if (event instanceof BaseUserAppEvent) {
81
+ const userId = event.userId;
82
+ const player = this.playersManager.getPlayerById(userId);
83
+ const foundUser = await this.usersRepository.findById(userId);
84
+ const allAchievements: Array<Achievement> =
85
+ await this.achievementRepository.findAchievements(event.game);
86
+ const usersAchievements: Array<UsersAchievement> =
87
+ await this.usersAchievementRepository.findAchivementsByUserId(userId);
88
+
89
+ if (!player || !foundUser) {
90
+ throw new InternalServerErrorException();
91
+ }
92
+
93
+ if (event instanceof UserGotNewLevelAppEvent) {
94
+ // TODO подумать куда перенести LEVEL UP
95
+ player.sendMessage(
96
+ new SnackbarSendToPlayerWsEvent(
97
+ event.game,
98
+ player.id,
99
+ AppScreenIconEnum.ARROW_UPWARD,
100
+ 'level up',
101
+ 'buttonText',
102
+ ),
103
+ );
104
+
105
+ if (
106
+ this.userHasNoAchievement(
107
+ usersAchievements,
108
+ GotLevel3Achievement.code,
109
+ )
110
+ ) {
111
+ if (new GotLevel3Achievement(event.newLevel).userGotAchievement()) {
112
+ void this.giveAchievement(
113
+ allAchievements,
114
+ GotLevel3Achievement.code,
115
+ foundUser,
116
+ event.game,
117
+ );
118
+ }
119
+ }
120
+
121
+ if (
122
+ this.userHasNoAchievement(
123
+ usersAchievements,
124
+ GotLevel10Achievement.code,
125
+ )
126
+ ) {
127
+ if (new GotLevel10Achievement(event.newLevel).userGotAchievement()) {
128
+ void this.giveAchievement(
129
+ allAchievements,
130
+ GotLevel10Achievement.code,
131
+ foundUser,
132
+ event.game,
133
+ );
134
+ }
135
+ }
136
+ } else if (event instanceof UserPlayedTheGameAppEvent) {
137
+ if (
138
+ this.userHasNoAchievement(
139
+ usersAchievements,
140
+ Playd10GamesAchievement.code,
141
+ )
142
+ ) {
143
+ const playdGamesCount =
144
+ await this.activityLogRepository.getUserPlayedGamesCount(userId);
145
+
146
+ if (
147
+ new Playd10GamesAchievement(playdGamesCount).userGotAchievement()
148
+ ) {
149
+ void this.giveAchievement(
150
+ allAchievements,
151
+ Playd10GamesAchievement.code,
152
+ foundUser,
153
+ event.game,
154
+ );
155
+ }
156
+ }
157
+ } else if (event instanceof UserWonTheGameAppEvent) {
158
+ if (
159
+ this.userHasNoAchievement(
160
+ usersAchievements,
161
+ Won3GamesAchievement.code,
162
+ )
163
+ ) {
164
+ const wonGamesCount =
165
+ await this.activityLogRepository.getUserWonGamesCount(userId);
166
+
167
+ if (new Won3GamesAchievement(wonGamesCount).userGotAchievement()) {
168
+ void this.giveAchievement(
169
+ allAchievements,
170
+ Won3GamesAchievement.code,
171
+ foundUser,
172
+ event.game,
173
+ );
174
+ }
175
+ }
176
+
177
+ if (
178
+ this.userHasNoAchievement(
179
+ usersAchievements,
180
+ Won3ProfiAchievement.code,
181
+ )
182
+ ) {
183
+ const wonProfiCount =
184
+ await this.activityLogRepository.getUserWonProfiCount(userId);
185
+ if (new Won3ProfiAchievement(wonProfiCount).userGotAchievement()) {
186
+ void this.giveAchievement(
187
+ allAchievements,
188
+ Won3ProfiAchievement.code,
189
+ foundUser,
190
+ event.game,
191
+ );
192
+ }
193
+ }
194
+
195
+ if (
196
+ this.userHasNoAchievement(
197
+ usersAchievements,
198
+ EarnOneMillionAchievement.code,
199
+ )
200
+ ) {
201
+ if (
202
+ new EarnOneMillionAchievement(
203
+ foundUser.balance,
204
+ ).userGotAchievement()
205
+ ) {
206
+ void this.giveAchievement(
207
+ allAchievements,
208
+ EarnOneMillionAchievement.code,
209
+ foundUser,
210
+ event.game,
211
+ );
212
+ }
213
+ }
214
+ } else if (event instanceof UserWonOneTableTournamentAppEvent) {
215
+ if (
216
+ this.userHasNoAchievement(
217
+ usersAchievements,
218
+ WonOneTableTournament3TimesAchievement.code,
219
+ )
220
+ ) {
221
+ const wonFastTournamentCount =
222
+ await this.activityLogRepository.getUserWonOneTableTournamentCount(
223
+ userId,
224
+ );
225
+ if (
226
+ new WonOneTableTournament3TimesAchievement(
227
+ wonFastTournamentCount,
228
+ ).userGotAchievement()
229
+ ) {
230
+ void this.giveAchievement(
231
+ allAchievements,
232
+ WonOneTableTournament3TimesAchievement.code,
233
+ foundUser,
234
+ event.game,
235
+ );
236
+ }
237
+ }
238
+ } else if (event instanceof UserWonManyTablesTournamentAppEvent) {
239
+ if (
240
+ this.userHasNoAchievement(
241
+ usersAchievements,
242
+ Take1PlaceOnManyTablesTournamentAchievement.code,
243
+ )
244
+ ) {
245
+ if (
246
+ new Take1PlaceOnManyTablesTournamentAchievement(
247
+ event.rank,
248
+ ).userGotAchievement()
249
+ ) {
250
+ void this.giveAchievement(
251
+ allAchievements,
252
+ Take1PlaceOnManyTablesTournamentAchievement.code,
253
+ foundUser,
254
+ event.game,
255
+ );
256
+ }
257
+ }
258
+
259
+ if (
260
+ this.userHasNoAchievement(
261
+ usersAchievements,
262
+ Take2Or3PlaceOnManyTablesTournamentAchievement.code,
263
+ )
264
+ ) {
265
+ if (
266
+ new Take2Or3PlaceOnManyTablesTournamentAchievement(
267
+ event.rank,
268
+ ).userGotAchievement()
269
+ ) {
270
+ void this.giveAchievement(
271
+ allAchievements,
272
+ Take2Or3PlaceOnManyTablesTournamentAchievement.code,
273
+ foundUser,
274
+ event.game,
275
+ );
276
+ }
277
+ }
278
+ }
279
+ }
280
+ }
281
+
282
+ protected userHasNoAchievement(
283
+ usersAchievements: Array<UsersAchievement>,
284
+ achievementCode: string,
285
+ ) {
286
+ return !usersAchievements.find(
287
+ (item) => item.achievementCode === achievementCode,
288
+ );
289
+ }
290
+
291
+ protected async giveAchievement(
292
+ allAchievements: Array<Achievement>,
293
+ achievementCode: string,
294
+ user: User,
295
+ game: string,
296
+ ) {
297
+ const foundAchievement = allAchievements.find(
298
+ (item) => item.code === achievementCode,
299
+ );
300
+ const player = this.playersManager.getPlayerById(user.userId);
301
+
302
+ if (foundAchievement && player) {
303
+ await this.usersAchievementRepository.addUsersAchievement(
304
+ user.userId,
305
+ user.fullName,
306
+ foundAchievement.achievementId,
307
+ foundAchievement.title[LanguageTypeEnum.RU],
308
+ foundAchievement.code,
309
+ foundAchievement.prize,
310
+ '',
311
+ );
312
+
313
+ player.sendMessage(
314
+ new SnackbarSendToPlayerWsEvent(
315
+ game,
316
+ player.id,
317
+ AppScreenIconEnum.EMOJI_EVENTS,
318
+ foundAchievement.title[player.language],
319
+ foundAchievement.description[player.language],
320
+ ),
321
+ );
322
+ }
323
+ }
324
+ }
@@ -1 +1 @@
1
- export { BaseAchievementsModule } from './base-achievements.module';
1
+ export { BaseAchievementsModule } from './base-achievements.module';
@@ -0,0 +1,3 @@
1
+ export const CONFIRMATION_MESSAGE_MANAGER_OPTIONS = Symbol(
2
+ 'CONFIRMATION_MESSAGE_MANAGER_OPTIONS',
3
+ );