jp.ms.common.modules 1.0.29 → 1.0.31
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.
- package/dist/dto/app-screen/index.d.ts +1 -0
- package/dist/dto/app-screen/index.js +3 -1
- package/dist/dto/app-screen/index.js.map +1 -1
- package/dist/dto/{table-game/cards → app-table}/card.dto.d.ts +2 -2
- package/dist/dto/app-table/card.dto.js.map +1 -0
- package/dist/dto/app-table/cards-deck.dto.d.ts +6 -0
- package/dist/dto/app-table/cards-deck.dto.js +38 -0
- package/dist/dto/app-table/cards-deck.dto.js.map +1 -0
- package/dist/dto/{table-game/cards/card-pair-slot.dto.d.ts → app-table/cards-pair-slots-item.dto.d.ts} +2 -2
- package/dist/dto/{table-game/cards/card-pair-slot.dto.js → app-table/cards-pair-slots-item.dto.js} +9 -9
- package/dist/dto/app-table/cards-pair-slots-item.dto.js.map +1 -0
- package/dist/dto/app-table/cards-pair-slots.dto.d.ts +5 -0
- package/dist/dto/app-table/cards-pair-slots.dto.js +27 -0
- package/dist/dto/app-table/cards-pair-slots.dto.js.map +1 -0
- package/dist/dto/app-table/cards-panel.dto.d.ts +10 -0
- package/dist/dto/{table-game/cards → app-table}/cards-panel.dto.js +4 -4
- package/dist/dto/app-table/cards-panel.dto.js.map +1 -0
- package/dist/dto/app-table/cards-player.dto.d.ts +6 -0
- package/dist/dto/{table-game/cards/card-player.dto.js → app-table/cards-player.dto.js} +6 -6
- package/dist/dto/app-table/cards-player.dto.js.map +1 -0
- package/dist/dto/app-table/index.d.ts +11 -0
- package/dist/dto/app-table/index.js +26 -0
- package/dist/dto/app-table/index.js.map +1 -0
- package/dist/dto/app-table/moves-panel-button.dto.d.ts +5 -0
- package/dist/dto/{table-game/base/base-table-yours-action.dto.js → app-table/moves-panel-button.dto.js} +6 -6
- package/dist/dto/app-table/moves-panel-button.dto.js.map +1 -0
- package/dist/dto/app-table/moves-panel.dto.d.ts +6 -0
- package/dist/dto/{table-game/base/base-table-moves-panel.dto.js → app-table/moves-panel.dto.js} +9 -9
- package/dist/dto/app-table/moves-panel.dto.js.map +1 -0
- package/dist/dto/{table-game/base/game-player.dto.d.ts → app-table/player.dto.d.ts} +2 -2
- package/dist/dto/{table-game/base/game-player.dto.js → app-table/player.dto.js} +11 -11
- package/dist/dto/app-table/player.dto.js.map +1 -0
- package/dist/dto/app-table/summary-item.dto.d.ts +8 -0
- package/dist/dto/{table-game/base/base-table-summary-item.dto.js → app-table/summary-item.dto.js} +9 -9
- package/dist/dto/app-table/summary-item.dto.js.map +1 -0
- package/dist/dto/app-table/summary.dto.d.ts +5 -0
- package/dist/dto/{table-game/base/base-table-summary.dto.js → app-table/summary.dto.js} +7 -7
- package/dist/dto/app-table/summary.dto.js.map +1 -0
- package/dist/dto/games/fool/fool-player.dto.d.ts +3 -0
- package/dist/dto/games/fool/fool-player.dto.js +8 -0
- package/dist/dto/games/fool/fool-player.dto.js.map +1 -0
- package/dist/dto/games/fool/fool-table.dto.d.ts +18 -0
- package/dist/dto/games/fool/fool-table.dto.js +105 -0
- package/dist/dto/games/fool/fool-table.dto.js.map +1 -0
- package/dist/dto/games/index.d.ts +1 -0
- package/dist/dto/games/index.js +18 -0
- package/dist/dto/games/index.js.map +1 -0
- package/dist/dto/index.d.ts +2 -1
- package/dist/dto/index.js +2 -1
- package/dist/dto/index.js.map +1 -1
- package/dist/exception/error-code.enum.d.ts +4 -0
- package/dist/exception/error-code.enum.js +9 -0
- package/dist/exception/error-code.enum.js.map +1 -0
- package/dist/exception/global-exception-filter.d.ts +5 -0
- package/dist/exception/global-exception-filter.js +53 -0
- package/dist/exception/global-exception-filter.js.map +1 -0
- package/dist/exception/http-exception-wth-snackbar.d.ts +12 -0
- package/dist/exception/http-exception-wth-snackbar.js +17 -0
- package/dist/exception/http-exception-wth-snackbar.js.map +1 -0
- package/dist/exception/index.d.ts +4 -0
- package/dist/exception/index.js +12 -0
- package/dist/exception/index.js.map +1 -0
- package/dist/exception/not-enough-money-for-purchase.exception.d.ts +5 -0
- package/dist/exception/not-enough-money-for-purchase.exception.js +12 -0
- package/dist/exception/not-enough-money-for-purchase.exception.js.map +1 -0
- package/dist/exception/not-found-free-room-for-fast-game.exception.d.ts +5 -0
- package/dist/exception/not-found-free-room-for-fast-game.exception.js +12 -0
- package/dist/exception/not-found-free-room-for-fast-game.exception.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/events/events.gateway.js +1 -1
- package/dist/modules/events/events.gateway.js.map +1 -1
- package/dist/modules/main/main-tables-list-screen.view.d.ts +11 -1
- package/dist/modules/main/main-tables-list-screen.view.js +97 -14
- package/dist/modules/main/main-tables-list-screen.view.js.map +1 -1
- package/dist/modules/main/main.controller.d.ts +4 -3
- package/dist/modules/main/main.controller.js +15 -3
- package/dist/modules/main/main.controller.js.map +1 -1
- package/dist/modules/main/main.module.js +2 -2
- package/dist/modules/main/main.module.js.map +1 -1
- package/dist/modules/main/main.service.d.ts +5 -4
- package/dist/modules/main/main.service.js +38 -12
- package/dist/modules/main/main.service.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.d.ts +4 -0
- package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js +56 -4
- package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js +3 -3
- package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +6 -7
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +5 -17
- package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +6 -7
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +20 -27
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
- package/dist/modules/menu/menu.service.js +1 -2
- package/dist/modules/menu/menu.service.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.d.ts +1 -0
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js +18 -5
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament.controller.d.ts +3 -3
- package/dist/modules/one-table-tournament/one-table-tournament.controller.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament.service.d.ts +3 -3
- package/dist/modules/one-table-tournament/one-table-tournament.service.js +1 -2
- package/dist/modules/one-table-tournament/one-table-tournament.service.js.map +1 -1
- package/dist/modules/simple-rooms/simple-rooms.controller.d.ts +5 -5
- package/dist/modules/simple-rooms/simple-rooms.service.d.ts +5 -5
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.d.ts +3 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js +14 -3
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js.map +1 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.d.ts +4 -3
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js +49 -25
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js.map +1 -1
- package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js +9 -6
- package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/game-table-result.d.ts +1 -2
- package/dist/utils/game-table-result.js +0 -13
- package/dist/utils/game-table-result.js.map +1 -1
- package/dist/views/index.d.ts +3 -0
- package/dist/views/index.js +7 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.d.ts +4 -0
- package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.js +11 -0
- package/dist/views/many-tables-tournament-conifrm-exit-dialog.view.js.map +1 -0
- package/dist/views/one-table-tournament-conifrm-exit-dialog.view.d.ts +4 -0
- package/dist/views/one-table-tournament-conifrm-exit-dialog.view.js +11 -0
- package/dist/views/one-table-tournament-conifrm-exit-dialog.view.js.map +1 -0
- package/dist/views/table-summary.view.d.ts +11 -0
- package/dist/views/table-summary.view.js +47 -0
- package/dist/views/table-summary.view.js.map +1 -0
- package/dist/views/tournament-buy-ticket-dialog.view.js +1 -1
- package/dist/views/tournament-buy-ticket-dialog.view.js.map +1 -1
- package/package.json +4 -4
- package/src/dto/app-screen/index.ts +1 -0
- package/src/dto/{table-game/cards → app-table}/card.dto.ts +2 -2
- package/src/dto/app-table/cards-deck.dto.ts +22 -0
- package/src/dto/{table-game/cards/card-pair-slot.dto.ts → app-table/cards-pair-slots-item.dto.ts} +2 -2
- package/src/dto/app-table/cards-pair-slots.dto.ts +13 -0
- package/src/dto/{table-game/cards → app-table}/cards-panel.dto.ts +5 -6
- package/src/dto/app-table/cards-player.dto.ts +14 -0
- package/src/dto/app-table/index.ts +11 -0
- package/src/dto/{table-game/base/base-table-yours-action.dto.ts → app-table/moves-panel-button.dto.ts} +2 -3
- package/src/dto/{table-game/base/base-table-moves-panel.dto.ts → app-table/moves-panel.dto.ts} +5 -5
- package/src/dto/{table-game/base/game-player.dto.ts → app-table/player.dto.ts} +2 -2
- package/src/dto/{table-game/base/base-table-summary-item.dto.ts → app-table/summary-item.dto.ts} +2 -3
- package/src/dto/app-table/summary.dto.ts +13 -0
- package/src/dto/games/fool/fool-player.dto.ts +3 -0
- package/src/dto/games/fool/fool-table.dto.ts +79 -0
- package/src/dto/games/index.ts +1 -0
- package/src/dto/index.ts +2 -1
- package/src/exception/error-code.enum.ts +4 -0
- package/src/exception/global-exception-filter.ts +50 -0
- package/src/exception/http-exception-wth-snackbar.ts +23 -0
- package/src/exception/index.ts +4 -0
- package/src/exception/not-enough-money-for-purchase.exception.ts +15 -0
- package/src/exception/not-found-free-room-for-fast-game.exception.ts +15 -0
- package/src/index.ts +2 -1
- package/src/modules/events/events.gateway.ts +1 -1
- package/src/modules/main/main-tables-list-screen.view.ts +177 -55
- package/src/modules/main/main.controller.ts +23 -10
- package/src/modules/main/main.module.ts +2 -2
- package/src/modules/main/main.service.ts +53 -19
- package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +97 -31
- package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +25 -17
- package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +8 -17
- package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +46 -58
- package/src/modules/menu/menu.service.ts +6 -9
- package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +43 -17
- package/src/modules/one-table-tournament/one-table-tournament.controller.ts +3 -4
- package/src/modules/one-table-tournament/one-table-tournament.service.ts +9 -12
- package/src/modules/simple-rooms/simple-rooms.controller.ts +5 -5
- package/src/modules/simple-rooms/simple-rooms.service.ts +5 -5
- package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +0 -2
- package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.ts +17 -9
- package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.ts +57 -26
- package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts +10 -7
- package/src/utils/game-table-result.ts +1 -16
- package/src/views/index.ts +4 -1
- package/src/views/many-tables-tournament-conifrm-exit-dialog.view.ts +21 -0
- package/src/views/one-table-tournament-conifrm-exit-dialog.view.ts +21 -0
- package/src/views/table-summary.view.ts +87 -0
- package/src/views/tournament-buy-ticket-dialog.view.ts +4 -4
- package/dist/adapter/base-table-game-state-adapter.d.ts +0 -36
- package/dist/adapter/base-table-game-state-adapter.js +0 -183
- package/dist/adapter/base-table-game-state-adapter.js.map +0 -1
- package/dist/adapter/card-table-game-state-adapter.d.ts +0 -14
- package/dist/adapter/card-table-game-state-adapter.js +0 -51
- package/dist/adapter/card-table-game-state-adapter.js.map +0 -1
- package/dist/adapter/index.d.ts +0 -1
- package/dist/adapter/index.js +0 -6
- package/dist/adapter/index.js.map +0 -1
- package/dist/dto/table-game/base/base-table-game-state.dto.d.ts +0 -17
- package/dist/dto/table-game/base/base-table-game-state.dto.js +0 -128
- package/dist/dto/table-game/base/base-table-game-state.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-moves-panel.dto.d.ts +0 -6
- package/dist/dto/table-game/base/base-table-moves-panel.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-summary-item.dto.d.ts +0 -8
- package/dist/dto/table-game/base/base-table-summary-item.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-summary.dto.d.ts +0 -5
- package/dist/dto/table-game/base/base-table-summary.dto.js.map +0 -1
- package/dist/dto/table-game/base/base-table-yours-action.dto.d.ts +0 -5
- package/dist/dto/table-game/base/base-table-yours-action.dto.js.map +0 -1
- package/dist/dto/table-game/base/game-player.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card-pair-slot.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card-player.dto.d.ts +0 -6
- package/dist/dto/table-game/cards/card-player.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card-table-game-state.dto.d.ts +0 -16
- package/dist/dto/table-game/cards/card-table-game-state.dto.js +0 -68
- package/dist/dto/table-game/cards/card-table-game-state.dto.js.map +0 -1
- package/dist/dto/table-game/cards/card.dto.js.map +0 -1
- package/dist/dto/table-game/cards/cards-panel.dto.d.ts +0 -10
- package/dist/dto/table-game/cards/cards-panel.dto.js.map +0 -1
- package/dist/dto/table-game/index.d.ts +0 -1
- package/dist/dto/table-game/index.js +0 -6
- package/dist/dto/table-game/index.js.map +0 -1
- package/src/adapter/base-table-game-state-adapter.ts +0 -272
- package/src/adapter/card-table-game-state-adapter.ts +0 -78
- package/src/adapter/index.ts +0 -1
- package/src/dto/table-game/base/base-table-game-state.dto.ts +0 -95
- package/src/dto/table-game/base/base-table-summary.dto.ts +0 -13
- package/src/dto/table-game/cards/card-player.dto.ts +0 -15
- package/src/dto/table-game/cards/card-table-game-state.dto.ts +0 -50
- package/src/dto/table-game/index.ts +0 -2
- /package/dist/dto/{table-game/cards → app-table}/card.dto.js +0 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { GlobalExceptionFilter } from './global-exception-filter';
|
|
2
|
+
export { NotEnoughMoneyForPurchaseException } from './not-enough-money-for-purchase.exception';
|
|
3
|
+
export { NotFoundFreeRoomForFastGameException } from './not-found-free-room-for-fast-game.exception';
|
|
4
|
+
export { ErrorCodeEnum } from './error-code.enum';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IAppScreenSnackbar } from 'jp.common.models';
|
|
2
|
+
|
|
3
|
+
import { ErrorCodeEnum } from './error-code.enum';
|
|
4
|
+
import { HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export class NotEnoughMoneyForPurchaseException extends HttpExceptionWithSnackbar {
|
|
8
|
+
constructor(snackbar: IAppScreenSnackbar) {
|
|
9
|
+
super(
|
|
10
|
+
'Not enough money for purchase',
|
|
11
|
+
ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
|
|
12
|
+
snackbar,
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IAppScreenSnackbar } from 'jp.common.models';
|
|
2
|
+
|
|
3
|
+
import { ErrorCodeEnum } from './error-code.enum';
|
|
4
|
+
import { HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export class NotFoundFreeRoomForFastGameException extends HttpExceptionWithSnackbar {
|
|
8
|
+
constructor(snackbar: IAppScreenSnackbar) {
|
|
9
|
+
super(
|
|
10
|
+
'Not found free room for fast game',
|
|
11
|
+
ErrorCodeEnum.NOT_FOUND_FREE_ROOM_FOR_FAST_GAME,
|
|
12
|
+
snackbar,
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -41,7 +41,7 @@ export class EventsGateway implements OnGatewayConnection<Socket>, OnGatewayDisc
|
|
|
41
41
|
balance: user.balance,
|
|
42
42
|
experience: user.experience,
|
|
43
43
|
level: user.level,
|
|
44
|
-
language: user.
|
|
44
|
+
language: user.normalizedLang,
|
|
45
45
|
});
|
|
46
46
|
this.playersManager.addPlayer(player);
|
|
47
47
|
player.connections.addConnection(client);
|
|
@@ -1,24 +1,33 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
1
2
|
import {
|
|
2
|
-
AppScreen,
|
|
3
|
-
AppScreenAppBar,
|
|
4
3
|
AppScreenIconEnum,
|
|
5
4
|
AppScreenIdEnum,
|
|
6
|
-
AppScreenSection,
|
|
7
|
-
AppScreenSectionButton,
|
|
8
|
-
AppScreenSectionImage,
|
|
9
|
-
AppScreenSectionListItem,
|
|
10
5
|
IAppScreen,
|
|
11
6
|
UniversalScreenView,
|
|
12
7
|
ILocaleService,
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
AppScreeButtonIdEnum,
|
|
9
|
+
StandardScreenComponent,
|
|
10
|
+
AppScreenRouter,
|
|
11
|
+
IAppScreenSectionListItem,
|
|
12
|
+
StandardAppBarComponent,
|
|
13
|
+
ArrowBackButtonComponent,
|
|
14
|
+
CardListSectionComponent,
|
|
15
|
+
MiniCardSectionListItemComponent,
|
|
16
|
+
UrlImageComponent,
|
|
17
|
+
IconImageComponent,
|
|
18
|
+
ExtendedCardSectionListItemComponent,
|
|
19
|
+
TextButtonComponent,
|
|
20
|
+
FullButtonsButtonsComponent,
|
|
21
|
+
PrimaryButtonButtonsComponent,
|
|
15
22
|
} from "jp.common.models";
|
|
16
23
|
import {
|
|
17
24
|
SimpleRoom,
|
|
18
25
|
OneTableTournamentRoom,
|
|
19
26
|
ManyTablesTournamentRoom,
|
|
27
|
+
TournamentMaster,
|
|
28
|
+
TournamentRoom,
|
|
20
29
|
} from "jp.ms.common.engine";
|
|
21
|
-
import { replacePattern } from "jp.common.utils";
|
|
30
|
+
import { formatDate, formatTime, replacePattern } from "jp.common.utils";
|
|
22
31
|
|
|
23
32
|
import { TournamentBuyTicketDialogView } from "../../views";
|
|
24
33
|
|
|
@@ -26,6 +35,7 @@ export class MainTablesListScreenView extends UniversalScreenView {
|
|
|
26
35
|
private readonly simpleRooms: Array<SimpleRoom>;
|
|
27
36
|
private readonly oneTableTournamentRooms: Array<OneTableTournamentRoom>;
|
|
28
37
|
private readonly manyTablesTournamentRooms: Array<ManyTablesTournamentRoom>;
|
|
38
|
+
private readonly playerId: string;
|
|
29
39
|
|
|
30
40
|
constructor(
|
|
31
41
|
localeService: ILocaleService,
|
|
@@ -33,67 +43,32 @@ export class MainTablesListScreenView extends UniversalScreenView {
|
|
|
33
43
|
simpleRooms: Array<SimpleRoom>,
|
|
34
44
|
oneTableTournamentRooms: Array<OneTableTournamentRoom>,
|
|
35
45
|
manyTablesTournamentRooms: Array<ManyTablesTournamentRoom>,
|
|
46
|
+
playerId: string,
|
|
36
47
|
) {
|
|
37
48
|
super(localeService, lang);
|
|
38
49
|
this.simpleRooms = simpleRooms;
|
|
39
50
|
this.oneTableTournamentRooms = oneTableTournamentRooms;
|
|
40
51
|
this.manyTablesTournamentRooms = manyTablesTournamentRooms;
|
|
52
|
+
this.playerId = playerId;
|
|
41
53
|
}
|
|
42
54
|
|
|
43
55
|
build (): IAppScreen {
|
|
44
|
-
|
|
45
|
-
AppScreenSectionListItem.CreateCardListItemMini(
|
|
46
|
-
room.getId(),
|
|
47
|
-
room.getTitle(this.lang),
|
|
48
|
-
room.getSubtitle(this.lang),
|
|
49
|
-
AppScreenSectionImage.CreateIconImage(AppScreenIconEnum.EMOJI_EVENTS),
|
|
50
|
-
true,
|
|
51
|
-
router.getOneTableTournamentStatusPath(room.getId()),
|
|
52
|
-
));
|
|
53
|
-
|
|
54
|
-
const manyTablesTournamentsCardList = this.manyTablesTournamentRooms.map((room) =>
|
|
55
|
-
AppScreenSectionListItem.CreateCardListItemExtended(
|
|
56
|
-
room.getId(),
|
|
57
|
-
room.getTitle(this.lang),
|
|
58
|
-
room.getSubtitle(this.lang),
|
|
59
|
-
AppScreenSectionImage.CreateIconImage(AppScreenIconEnum.EMOJI_EVENTS),
|
|
60
|
-
true,
|
|
61
|
-
true,
|
|
62
|
-
AppScreenSectionImage.CreateIconImage(AppScreenIconEnum.EMOJI_EVENTS),
|
|
63
|
-
room.getDescription(this.lang),
|
|
64
|
-
AppScreenSectionButtons.CreatePrimaryButtonSection(AppScreenSectionButton.CreateTextButton('button')),
|
|
65
|
-
));
|
|
66
|
-
|
|
67
|
-
const simpleRoomsTableCardList = this.simpleRooms.reduce<Array<AppScreenSectionListItem>>((result, room) => {
|
|
68
|
-
const list = room.getTables().map((table) => AppScreenSectionListItem.CreateCardListItemMini(
|
|
69
|
-
table.getId(),
|
|
70
|
-
table.getTitleWithNumber(this.lang),
|
|
71
|
-
replacePattern(table.getSubtitle(this.lang), {
|
|
72
|
-
HALF_BET: table.getHalfBet().toString(),
|
|
73
|
-
BET: table.getBet().toString()
|
|
74
|
-
}),
|
|
75
|
-
AppScreenSectionImage.CreateUrlImage(`${table.getPlayers().length}/${table.getTableSize()}`),
|
|
76
|
-
true,
|
|
77
|
-
router.getRoomPath(table.getId()),
|
|
78
|
-
));
|
|
79
|
-
|
|
80
|
-
return [...result, ...list];
|
|
81
|
-
}, []);
|
|
82
|
-
|
|
83
|
-
return AppScreen.CreateStandardScreen(AppScreenIdEnum.ROOMS)
|
|
56
|
+
return new StandardScreenComponent(AppScreenIdEnum.ROOMS)
|
|
84
57
|
.addAppBar(
|
|
85
|
-
|
|
58
|
+
new StandardAppBarComponent(
|
|
86
59
|
this.localeService.t('common.rooms.screen.title', { lang: this.lang }),
|
|
87
|
-
|
|
60
|
+
new ArrowBackButtonComponent(
|
|
61
|
+
this.localeService.t('common.button.back', { lang: this.lang })
|
|
62
|
+
),
|
|
88
63
|
),
|
|
89
64
|
)
|
|
90
65
|
.addSection(
|
|
91
|
-
|
|
66
|
+
new CardListSectionComponent(
|
|
92
67
|
'id1',
|
|
93
68
|
[
|
|
94
|
-
...
|
|
95
|
-
...
|
|
96
|
-
...
|
|
69
|
+
...this.getManyTablesTournamentsCardList(),
|
|
70
|
+
...this.getOneTableTournamentsCardList(),
|
|
71
|
+
...this.getSimpleRoomsTableCardList(),
|
|
97
72
|
]
|
|
98
73
|
),
|
|
99
74
|
)
|
|
@@ -104,4 +79,151 @@ export class MainTablesListScreenView extends UniversalScreenView {
|
|
|
104
79
|
).build(),
|
|
105
80
|
)
|
|
106
81
|
}
|
|
82
|
+
|
|
83
|
+
private getSimpleRoomsTableCardList (): Array<IAppScreenSectionListItem> {
|
|
84
|
+
return this.simpleRooms.reduce<Array<IAppScreenSectionListItem>>((result, room) => {
|
|
85
|
+
const list = room.getTables().map((table) => new MiniCardSectionListItemComponent(
|
|
86
|
+
table.getId(),
|
|
87
|
+
table.getTitleWithNumber(this.lang),
|
|
88
|
+
replacePattern(table.getSubtitle(this.lang), {
|
|
89
|
+
HALF_BET: table.getHalfBet().toString(),
|
|
90
|
+
BET: table.getBet().toString()
|
|
91
|
+
}),
|
|
92
|
+
new UrlImageComponent(`${table.getPlayers().length}/${table.getTableSize()}`),
|
|
93
|
+
true,
|
|
94
|
+
true,
|
|
95
|
+
AppScreenRouter.getSimpleRoomTablePath(table.getId()),
|
|
96
|
+
));
|
|
97
|
+
|
|
98
|
+
return [...result, ...list];
|
|
99
|
+
}, []);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private getOneTableTournamentsCardList (): Array<IAppScreenSectionListItem> {
|
|
103
|
+
return this.oneTableTournamentRooms.map((room) =>
|
|
104
|
+
new MiniCardSectionListItemComponent(
|
|
105
|
+
room.getId(),
|
|
106
|
+
room.getTitle(this.lang),
|
|
107
|
+
this.getOneTableTournamentSubtitle(room),
|
|
108
|
+
this.getOneTableTournamentIcon(room),
|
|
109
|
+
true,
|
|
110
|
+
true,
|
|
111
|
+
AppScreenRouter.getOneTableTournamentStatusPath(room.getId()),
|
|
112
|
+
)
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
private getOneTableTournamentSubtitle (tournament: TournamentRoom): string {
|
|
117
|
+
if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
|
|
118
|
+
return this.localeService.t('common.tournaments.status.4', { lang: this.lang });
|
|
119
|
+
} else if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
|
|
120
|
+
return this.localeService.t('common.tournaments.status.3', { lang: this.lang });
|
|
121
|
+
} else if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
|
|
122
|
+
return this.localeService.t('common.tournaments.status.2', { lang: this.lang });
|
|
123
|
+
} else if (tournament.getRoomMaster<TournamentMaster>().isWaiting()) {
|
|
124
|
+
return tournament.getSubtitle(this.lang);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return '';
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
private getOneTableTournamentIcon (tournament: TournamentRoom) {
|
|
131
|
+
if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
|
|
132
|
+
return new IconImageComponent(AppScreenIconEnum.EMOJI_EVENTS);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
|
|
136
|
+
return new IconImageComponent(AppScreenIconEnum.INFO);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
|
|
140
|
+
return new IconImageComponent(AppScreenIconEnum.BOLT);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return new UrlImageComponent(`${tournament.getParticipants().length}/${tournament.getTableSize()}`);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
private getManyTablesTournamentsCardList (): Array<IAppScreenSectionListItem> {
|
|
147
|
+
return this.manyTablesTournamentRooms.map((room) =>
|
|
148
|
+
this.getManyTablesTournamentsCardListItem(room));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private getManyTablesTournamentsCardListItem (tournament: ManyTablesTournamentRoom): IAppScreenSectionListItem {
|
|
152
|
+
if (tournament.getRoomMaster<TournamentMaster>().isWaiting() || tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
|
|
153
|
+
return new ExtendedCardSectionListItemComponent(
|
|
154
|
+
tournament.getId(),
|
|
155
|
+
tournament.getTitle(this.lang),
|
|
156
|
+
this.getManyTablesTournamentSubtitle(tournament),
|
|
157
|
+
this.getManyTablesTournamentIcon(tournament),
|
|
158
|
+
true,
|
|
159
|
+
true,
|
|
160
|
+
this.getManyTablesTournamentIcon(tournament),
|
|
161
|
+
replacePattern(tournament.getDescription(this.lang), {
|
|
162
|
+
PARTICIPANTS: tournament.getParticipants().length.toString(),
|
|
163
|
+
TOTAL_PARTICIPANTS: tournament.getMaxParticipants().toString(),
|
|
164
|
+
}),
|
|
165
|
+
this.getManyTablesTournamenButtons(tournament),
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return new MiniCardSectionListItemComponent(
|
|
170
|
+
tournament.getId(),
|
|
171
|
+
tournament.getTitle(this.lang),
|
|
172
|
+
this.getManyTablesTournamentSubtitle(tournament),
|
|
173
|
+
this.getManyTablesTournamentIcon(tournament),
|
|
174
|
+
true,
|
|
175
|
+
true,
|
|
176
|
+
AppScreenRouter.getManyTablesTournamentStatusPath(tournament.getId()),
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
private getManyTablesTournamentIcon (tournament: TournamentRoom) {
|
|
181
|
+
if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
|
|
182
|
+
return new IconImageComponent(AppScreenIconEnum.INFO);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
|
|
186
|
+
return new IconImageComponent(AppScreenIconEnum.BOLT);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
return new IconImageComponent(AppScreenIconEnum.EMOJI_EVENTS);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
private getManyTablesTournamentSubtitle (tournament: ManyTablesTournamentRoom): string {
|
|
193
|
+
if (tournament.getRoomMaster<TournamentMaster>().isCancelled()) {
|
|
194
|
+
return this.localeService.t('common.tournaments.status.4', { lang: this.lang });
|
|
195
|
+
} else if (tournament.getRoomMaster<TournamentMaster>().isFinish()) {
|
|
196
|
+
return this.localeService.t('common.tournaments.status.3', { lang: this.lang });
|
|
197
|
+
} else if (tournament.getRoomMaster<TournamentMaster>().isInProgress()) {
|
|
198
|
+
return this.localeService.t('common.tournaments.status.2', { lang: this.lang });
|
|
199
|
+
} else if (tournament.getRoomMaster<TournamentMaster>().isWaiting()) {
|
|
200
|
+
return replacePattern(tournament.getSubtitle(this.lang), {
|
|
201
|
+
DATE: dayjs(tournament.getScheduleDate()).isToday() ?
|
|
202
|
+
this.localeService.t('common.tournaments.status.today', { lang: this.lang }) :
|
|
203
|
+
formatDate(tournament.getScheduleDate() ?? ''),
|
|
204
|
+
SCHEDULE_DATE: formatTime(tournament.getScheduleDate() ?? ''),
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return '';
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
private getManyTablesTournamenButtons (tournament: ManyTablesTournamentRoom) {
|
|
212
|
+
if (tournament.isParticipant(this.playerId)) {
|
|
213
|
+
return new PrimaryButtonButtonsComponent(
|
|
214
|
+
new TextButtonComponent(
|
|
215
|
+
this.localeService.t('common.tournaments.screen.button.join.tournament', { lang: this.lang })
|
|
216
|
+
).setId(AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_JOIN)
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
return new FullButtonsButtonsComponent(
|
|
221
|
+
new TextButtonComponent(
|
|
222
|
+
this.localeService.t('common.tournaments.screen.button.buy.ticket', { lang: this.lang })
|
|
223
|
+
).setId(AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_BUY_TICKET),
|
|
224
|
+
new TextButtonComponent(
|
|
225
|
+
this.localeService.t('common.tournaments.screen.button.join.tournament', { lang: this.lang })
|
|
226
|
+
).setId(AppScreeButtonIdEnum.BUTTON_MAIN_TABLES_MANY_TABLES_TOURNAMENT_JOIN)
|
|
227
|
+
);
|
|
228
|
+
}
|
|
107
229
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Controller, Get, Headers } from '@nestjs/common';
|
|
2
|
-
import { IAppHeaders
|
|
1
|
+
import { Controller, Get, Headers, HttpCode, HttpStatus, NotImplementedException, Param, Post } from '@nestjs/common';
|
|
2
|
+
import { IAppHeaders } from 'jp.common.models';
|
|
3
3
|
|
|
4
|
-
import { PlayerCheckStateDto, FindFreeTableDto } from '../../dto';
|
|
4
|
+
import { PlayerCheckStateDto, FindFreeTableDto, BaseAppScreenDto } from '../../dto';
|
|
5
5
|
|
|
6
6
|
import { MainService } from './main.service';
|
|
7
7
|
|
|
@@ -12,27 +12,40 @@ export class MainController {
|
|
|
12
12
|
) { }
|
|
13
13
|
|
|
14
14
|
@Get('player_check_state')
|
|
15
|
-
checkState(@Headers() headers: IAppHeaders): Promise<PlayerCheckStateDto> {
|
|
15
|
+
checkState (@Headers() headers: IAppHeaders): Promise<PlayerCheckStateDto> {
|
|
16
16
|
return this.mainService.playerCheckState(headers.client_auth_token, headers.client_game);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
@Get('tables')
|
|
20
|
-
getScreen(@Headers() headers: IAppHeaders):
|
|
21
|
-
return this.mainService.getScreen(headers.client_language);
|
|
20
|
+
getScreen (@Headers() headers: IAppHeaders): BaseAppScreenDto {
|
|
21
|
+
return this.mainService.getScreen(headers.client_language, headers.client_auth_token);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
@Get('tables/subscribe')
|
|
25
|
-
subscribeOnTablesScreen(@Headers() headers: IAppHeaders): Promise<void> {
|
|
25
|
+
subscribeOnTablesScreen (@Headers() headers: IAppHeaders): Promise<void> {
|
|
26
26
|
return this.mainService.subscribeOnTablesScreen(headers.client_language);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
@Get('tables/unsubscribe')
|
|
30
|
-
unsubscribeFromTablesScreen(@Headers() headers: IAppHeaders): Promise<void> {
|
|
30
|
+
unsubscribeFromTablesScreen (@Headers() headers: IAppHeaders): Promise<void> {
|
|
31
31
|
return this.mainService.unsubscribeFromTablesScreen(headers.client_language);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
@Get('find_free_table')
|
|
35
|
-
findFreeTable(@Headers() headers: IAppHeaders): FindFreeTableDto {
|
|
36
|
-
return this.mainService.findFreeTable(headers.client_auth_token);
|
|
35
|
+
findFreeTable (@Headers() headers: IAppHeaders): FindFreeTableDto {
|
|
36
|
+
return this.mainService.findFreeTable(headers.client_auth_token, headers.client_language);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@Post('many_tables_tournament/buy_ticket/:tournamentId')
|
|
40
|
+
@HttpCode(HttpStatus.OK)
|
|
41
|
+
buyTicket (
|
|
42
|
+
@Param('tournamentId') tournamentId: string,
|
|
43
|
+
@Headers() headers: IAppHeaders,
|
|
44
|
+
): Promise<BaseAppScreenDto> {
|
|
45
|
+
return this.mainService.manyTablesTournamentbBuyTicket(
|
|
46
|
+
headers.client_auth_token,
|
|
47
|
+
headers.client_language,
|
|
48
|
+
tournamentId,
|
|
49
|
+
);
|
|
37
50
|
}
|
|
38
51
|
}
|
|
@@ -20,7 +20,7 @@ import { MainModuleOptions } from './main.interfaces';
|
|
|
20
20
|
MainService,
|
|
21
21
|
UsersRepository,
|
|
22
22
|
ActivityLogRepository,
|
|
23
|
-
]
|
|
23
|
+
],
|
|
24
24
|
})
|
|
25
25
|
export class MainModule {
|
|
26
26
|
constructor(
|
|
@@ -48,7 +48,7 @@ export class MainModule {
|
|
|
48
48
|
|
|
49
49
|
private onHandleStatusRoomChange = (event: RoomUpdateStateEvent) => {
|
|
50
50
|
this.eventsBusMainTablesSubscribeService.getTablesSubscribers().forEach((subscriber: GamePlayer) => {
|
|
51
|
-
const screen = this.mainService.getScreen(subscriber.language);
|
|
51
|
+
const screen = this.mainService.getScreen(subscriber.language, subscriber.id);
|
|
52
52
|
subscriber.sendMessage(new MainTablesUpdateListWsEvent(event.game, screen));
|
|
53
53
|
});
|
|
54
54
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Inject, Injectable, InternalServerErrorException } from '@nestjs/common';
|
|
2
|
-
import { AppScreenRoutesEnum, BaseAppScreen, router } from 'jp.common.models';
|
|
3
2
|
import dayjs from 'dayjs';
|
|
4
3
|
import isToday from 'dayjs/plugin/isToday';
|
|
5
4
|
import { ActivityLogRepository, UsersRepository } from 'jp.db.schemas';
|
|
5
|
+
import { SimpleRoom, OneTableTournamentRoom, ManyTablesTournamentRoom } from 'jp.ms.common.engine';
|
|
6
|
+
import { AppScreenRoutesEnum, ErrorSnackbarComponent, AppScreenRouter } from 'jp.common.models';
|
|
6
7
|
|
|
7
8
|
import { BaseAppScreenDto, PlayerCheckStateDto, FindFreeTableDto } from '../../dto';
|
|
8
9
|
import { SimpleRoomsManagerService } from '../simple-rooms-manager';
|
|
@@ -10,6 +11,7 @@ import { PlayersManagerService } from '../players-manager';
|
|
|
10
11
|
import { TournamentOneTableRoomsManagerService } from '../tournament-one-table-rooms-manager';
|
|
11
12
|
import { TournamentManyTablesRoomsManagerService } from '../tournament-many-tables-rooms-manager';
|
|
12
13
|
import { EventsBusMainTablesSubscribeService } from '../event-bus/events-bus.main-tables.subscribe.service';
|
|
14
|
+
import { ErrorCodeEnum, NotEnoughMoneyForPurchaseException, NotFoundFreeRoomForFastGameException } from '../../exception';
|
|
13
15
|
|
|
14
16
|
import { MainFactoryOptions } from './main.interfaces';
|
|
15
17
|
import { MAIN_OPTIONS } from './main.constants';
|
|
@@ -23,24 +25,23 @@ export class MainService {
|
|
|
23
25
|
private readonly manyTablesRoomsManagerService: TournamentManyTablesRoomsManagerService,
|
|
24
26
|
private readonly playersManager: PlayersManagerService,
|
|
25
27
|
private readonly eventsBusMainTablesSubscribeService: EventsBusMainTablesSubscribeService,
|
|
26
|
-
private readonly
|
|
28
|
+
private readonly usersRepository: UsersRepository,
|
|
27
29
|
private readonly activityLogRepository: ActivityLogRepository,
|
|
28
30
|
@Inject(MAIN_OPTIONS) private readonly options: MainFactoryOptions,
|
|
29
31
|
) {
|
|
30
32
|
dayjs.extend(isToday);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
getScreen (lang: string): BaseAppScreenDto {
|
|
35
|
+
getScreen (lang: string, clientAuthToken: string): BaseAppScreenDto {
|
|
34
36
|
return new BaseAppScreenDto(
|
|
35
|
-
new
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
)
|
|
37
|
+
new MainTablesListScreenView(
|
|
38
|
+
this.options.i18n,
|
|
39
|
+
lang,
|
|
40
|
+
this.simpleRoomsManager.getRooms(),
|
|
41
|
+
this.oneTableRoomsManagerService.getRooms(),
|
|
42
|
+
this.manyTablesRoomsManagerService.getRooms(),
|
|
43
|
+
clientAuthToken,
|
|
44
|
+
).buildBS(),
|
|
44
45
|
);
|
|
45
46
|
}
|
|
46
47
|
|
|
@@ -68,7 +69,7 @@ export class MainService {
|
|
|
68
69
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
69
70
|
let redirectUrl: string = AppScreenRoutesEnum.MENU;
|
|
70
71
|
|
|
71
|
-
const foundUser = await this.
|
|
72
|
+
const foundUser = await this.usersRepository.findById(clientAuthToken);
|
|
72
73
|
const isNewbie = await this.activityLogRepository.userIsNewbie(clientAuthToken)
|
|
73
74
|
const last7logins = await this.activityLogRepository.findLast7DaysLogins(game, clientAuthToken);
|
|
74
75
|
|
|
@@ -76,8 +77,14 @@ export class MainService {
|
|
|
76
77
|
throw new InternalServerErrorException();
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
if (player
|
|
80
|
-
|
|
80
|
+
if (player && (player.isPlayer() || player.isTableQueuer()) && player.tableId) {
|
|
81
|
+
if (player.room instanceof SimpleRoom) {
|
|
82
|
+
redirectUrl = AppScreenRouter.getSimpleRoomTablePath(player.tableId);
|
|
83
|
+
} else if (player.room instanceof OneTableTournamentRoom) {
|
|
84
|
+
redirectUrl = AppScreenRouter.getOneTableTournamentTablePath(player.tableId);
|
|
85
|
+
} else if (player.room instanceof ManyTablesTournamentRoom) {
|
|
86
|
+
redirectUrl = AppScreenRouter.getManyTablesTournamentTablePath(player.tableId);
|
|
87
|
+
}
|
|
81
88
|
} else if (isNewbie) {
|
|
82
89
|
redirectUrl = AppScreenRoutesEnum.WELCOME;
|
|
83
90
|
} else if (dayjs(last7logins[0].date).isToday() && last7logins[0].count === 1) {
|
|
@@ -92,14 +99,41 @@ export class MainService {
|
|
|
92
99
|
);
|
|
93
100
|
}
|
|
94
101
|
|
|
95
|
-
findFreeTable (clientAuthToken: string): FindFreeTableDto {
|
|
102
|
+
findFreeTable (clientAuthToken: string, lang: string): FindFreeTableDto {
|
|
96
103
|
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
97
|
-
const tableId = this.simpleRoomsManager.getFreeFastGameRoom()?.getId()
|
|
104
|
+
const tableId = this.simpleRoomsManager.getFreeFastGameRoom()?.getId();
|
|
98
105
|
|
|
106
|
+
if (!player || !tableId) {
|
|
107
|
+
throw new NotFoundFreeRoomForFastGameException(new ErrorSnackbarComponent(
|
|
108
|
+
ErrorCodeEnum.NOT_FOUND_FREE_ROOM_FOR_FAST_GAME,
|
|
109
|
+
this.options.i18n.t('common.server.message.code.4003', { lang })
|
|
110
|
+
));
|
|
111
|
+
}
|
|
99
112
|
|
|
100
113
|
return FindFreeTableDto.fromEntities(
|
|
101
|
-
|
|
102
|
-
player
|
|
114
|
+
AppScreenRouter.getSimpleRoomTablePath(tableId),
|
|
115
|
+
player.id,
|
|
103
116
|
);
|
|
104
117
|
}
|
|
118
|
+
|
|
119
|
+
async manyTablesTournamentbBuyTicket (clientAuthToken: string, lang: string, tournamentId: string): Promise<BaseAppScreenDto> {
|
|
120
|
+
const player = this.playersManager.getPlayerById(clientAuthToken);
|
|
121
|
+
const tournament = this.manyTablesRoomsManagerService.getRoomByTableId(tournamentId);
|
|
122
|
+
const user = await this.usersRepository.findById(player?.id ?? '');
|
|
123
|
+
|
|
124
|
+
if (!player || !tournament || !user) {
|
|
125
|
+
throw new InternalServerErrorException();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (user.balance < tournament.getTicketPrice()) {
|
|
129
|
+
throw new NotEnoughMoneyForPurchaseException(new ErrorSnackbarComponent(
|
|
130
|
+
ErrorCodeEnum.NOT_ENOUGH_MONEY_FOR_PURCHASE,
|
|
131
|
+
this.options.i18n.t('common.server.message.code.4004', { lang })
|
|
132
|
+
));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
await this.manyTablesRoomsManagerService.buyTicket(tournamentId, player);
|
|
136
|
+
|
|
137
|
+
return this.getScreen(lang, clientAuthToken);
|
|
138
|
+
}
|
|
105
139
|
}
|