jp.ms.common.modules 1.0.23 → 1.0.25
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/adapter/base-table-game-state-adapter.d.ts +3 -1
- package/dist/adapter/base-table-game-state-adapter.js +11 -0
- package/dist/adapter/base-table-game-state-adapter.js.map +1 -1
- package/dist/adapter/card-table-game-state-adapter.d.ts +4 -2
- package/dist/adapter/card-table-game-state-adapter.js +15 -4
- package/dist/adapter/card-table-game-state-adapter.js.map +1 -1
- package/dist/config/cert.js +35 -2
- package/dist/config/cert.js.map +1 -1
- package/dist/config/cors.js +34 -1
- package/dist/config/cors.js.map +1 -1
- package/dist/dto/common/find-free-table.dto.d.ts +3 -0
- package/dist/dto/common/find-free-table.dto.js +8 -0
- package/dist/dto/common/find-free-table.dto.js.map +1 -0
- package/dist/dto/common/index.d.ts +1 -0
- package/dist/dto/common/index.js +3 -1
- package/dist/dto/common/index.js.map +1 -1
- package/dist/dto/table-game/base/base-table-game-state.dto.d.ts +3 -0
- package/dist/dto/table-game/base/base-table-game-state.dto.js +19 -0
- package/dist/dto/table-game/base/base-table-game-state.dto.js.map +1 -1
- package/dist/dto/table-game/cards/cards-panel.dto.d.ts +2 -1
- package/dist/dto/table-game/cards/cards-panel.dto.js +14 -3
- package/dist/dto/table-game/cards/cards-panel.dto.js.map +1 -1
- package/dist/modules/anti-freeze-system/anti-freeze-system.module.js +4 -1
- package/dist/modules/anti-freeze-system/anti-freeze-system.module.js.map +1 -1
- package/dist/modules/anti-freeze-system/anti-freeze-system.service.js +2 -2
- package/dist/modules/anti-freeze-system/anti-freeze-system.service.js.map +1 -1
- package/dist/modules/base-achievements/base-achievements.module.d.ts +5 -3
- package/dist/modules/base-achievements/base-achievements.module.js +34 -25
- package/dist/modules/base-achievements/base-achievements.module.js.map +1 -1
- package/dist/modules/event-bus/events-bus.main-tables.subscribe.service.d.ts +1 -1
- package/dist/modules/event-bus/events-bus.main-tables.subscribe.service.js.map +1 -1
- package/dist/modules/logger/jp-logger.service.js +34 -1
- package/dist/modules/logger/jp-logger.service.js.map +1 -1
- package/dist/modules/main/main-tables-list-screen.view.js +1 -1
- package/dist/modules/main/main-tables-list-screen.view.js.map +1 -1
- package/dist/modules/main/main.controller.d.ts +2 -2
- package/dist/modules/main/main.controller.js +4 -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 +2 -2
- package/dist/modules/main/main.service.js +11 -5
- package/dist/modules/main/main.service.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.module.js +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.module.js.map +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +1 -1
- package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
- package/dist/modules/menu/menu-screen.view.d.ts +5 -3
- package/dist/modules/menu/menu-screen.view.js +10 -2
- package/dist/modules/menu/menu-screen.view.js.map +1 -1
- package/dist/modules/menu/menu.module.js +2 -1
- package/dist/modules/menu/menu.module.js.map +1 -1
- package/dist/modules/menu/menu.service.d.ts +3 -2
- package/dist/modules/menu/menu.service.js +8 -4
- package/dist/modules/menu/menu.service.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.d.ts +6 -1
- package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js +52 -3
- 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 +4 -5
- package/dist/modules/one-table-tournament/one-table-tournament.controller.js +8 -9
- package/dist/modules/one-table-tournament/one-table-tournament.controller.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament.module.js +2 -2
- package/dist/modules/one-table-tournament/one-table-tournament.module.js.map +1 -1
- package/dist/modules/one-table-tournament/one-table-tournament.service.d.ts +6 -7
- package/dist/modules/one-table-tournament/one-table-tournament.service.js +10 -17
- package/dist/modules/one-table-tournament/one-table-tournament.service.js.map +1 -1
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.d.ts +2 -1
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js +30 -5
- package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
- package/dist/modules/support/dump.service.js +4 -1
- package/dist/modules/support/dump.service.js.map +1 -1
- package/dist/modules/support/metric.service.js +34 -1
- package/dist/modules/support/metric.service.js.map +1 -1
- package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js +33 -10
- 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 +21 -5
- 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 +3 -2
- package/dist/utils/game-table-result.js +14 -1
- package/dist/utils/game-table-result.js.map +1 -1
- package/dist/views/index.d.ts +1 -0
- package/dist/views/index.js +3 -1
- package/dist/views/index.js.map +1 -1
- package/dist/views/simple-room-conifrm-exit-dialog.view.d.ts +4 -0
- package/dist/views/simple-room-conifrm-exit-dialog.view.js +11 -0
- package/dist/views/simple-room-conifrm-exit-dialog.view.js.map +1 -0
- package/dist/views/tournament-buy-ticket-dialog.view.d.ts +2 -2
- 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/adapter/base-table-game-state-adapter.ts +23 -5
- package/src/adapter/card-table-game-state-adapter.ts +28 -4
- package/src/dto/common/find-free-table.dto.ts +3 -0
- package/src/dto/common/index.ts +1 -0
- package/src/dto/table-game/base/base-table-game-state.dto.ts +16 -0
- package/src/dto/table-game/cards/cards-panel.dto.ts +12 -3
- package/src/modules/anti-freeze-system/anti-freeze-system.service.ts +3 -3
- package/src/modules/base-achievements/base-achievements.module.ts +46 -24
- package/src/modules/event-bus/events-bus.main-tables.subscribe.service.ts +1 -1
- package/src/modules/main/main-tables-list-screen.view.ts +2 -2
- package/src/modules/main/main.controller.ts +4 -4
- package/src/modules/main/main.module.ts +5 -5
- package/src/modules/main/main.service.ts +20 -10
- package/src/modules/many-tables-tournament/many-tables-tournament.module.ts +1 -1
- package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +2 -1
- package/src/modules/menu/menu-screen.view.ts +33 -11
- package/src/modules/menu/menu.module.ts +3 -2
- package/src/modules/menu/menu.service.ts +5 -2
- package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +76 -10
- package/src/modules/one-table-tournament/one-table-tournament.controller.ts +8 -8
- package/src/modules/one-table-tournament/one-table-tournament.module.ts +2 -2
- package/src/modules/one-table-tournament/one-table-tournament.service.ts +20 -28
- package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +64 -14
- package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.ts +42 -17
- package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts +37 -15
- package/src/utils/game-table-result.ts +18 -3
- package/src/views/index.ts +2 -1
- package/src/views/simple-room-conifrm-exit-dialog.view.ts +21 -0
- package/src/views/tournament-buy-ticket-dialog.view.ts +11 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { GameMaster, TournamentMaster } from 'jp.ms.common.engine';
|
|
2
|
-
import { GameResultRepository, TournamentManyTablesRoomsRepository, TournamentOneTableRoomsRepository, UsersRepository } from 'jp.db.schemas';
|
|
3
1
|
import { Connection } from 'mongoose';
|
|
2
|
+
import { BaseGameEvent, GameMaster, GameTournamentPlayerLeavedTheTournamentEvent, TournamentMaster } from 'jp.ms.common.engine';
|
|
3
|
+
import { GameResultRepository, TournamentManyTablesRoomsRepository, TournamentOneTableRoomsRepository, UsersRepository } from 'jp.db.schemas';
|
|
4
4
|
export declare function getGameTableResults(master: GameMaster): {
|
|
5
5
|
gameType: string;
|
|
6
6
|
gameId: string;
|
|
@@ -37,3 +37,4 @@ export declare function getGameTableResults(master: GameMaster): {
|
|
|
37
37
|
};
|
|
38
38
|
export declare function saveGameTablesResult(master: GameMaster, connection: Connection, gameResultRepository: GameResultRepository, usersRepository: UsersRepository, saveNewBalance: boolean): Promise<void>;
|
|
39
39
|
export declare function saveTournamentResult(master: TournamentMaster, connection: Connection, tournamentRepository: TournamentManyTablesRoomsRepository | TournamentOneTableRoomsRepository, usersRepository: UsersRepository): Promise<void>;
|
|
40
|
+
export declare function isUpdateTounrmanentRoomEvent(event: BaseGameEvent): GameTournamentPlayerLeavedTheTournamentEvent | null;
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getGameTableResults = getGameTableResults;
|
|
4
4
|
exports.saveGameTablesResult = saveGameTablesResult;
|
|
5
5
|
exports.saveTournamentResult = saveTournamentResult;
|
|
6
|
+
exports.isUpdateTounrmanentRoomEvent = isUpdateTounrmanentRoomEvent;
|
|
7
|
+
const jp_ms_common_engine_1 = require("jp.ms.common.engine");
|
|
6
8
|
function getGameTableResults(master) {
|
|
7
9
|
return {
|
|
8
10
|
gameType: master.getRoom().getGameType(),
|
|
@@ -72,7 +74,7 @@ async function saveTournamentResult(master, connection, tournamentRepository, us
|
|
|
72
74
|
levelAdding: 0,
|
|
73
75
|
};
|
|
74
76
|
});
|
|
75
|
-
const session = await
|
|
77
|
+
const session = await connection.startSession();
|
|
76
78
|
session.startTransaction();
|
|
77
79
|
try {
|
|
78
80
|
await usersRepository.saveGameResult(userTournamentResult);
|
|
@@ -87,4 +89,15 @@ async function saveTournamentResult(master, connection, tournamentRepository, us
|
|
|
87
89
|
await session.endSession();
|
|
88
90
|
}
|
|
89
91
|
}
|
|
92
|
+
function isUpdateTounrmanentRoomEvent(event) {
|
|
93
|
+
if (event instanceof jp_ms_common_engine_1.GameTournamentPlayerJoinedTheTournamentEvent &&
|
|
94
|
+
event instanceof jp_ms_common_engine_1.GameTournamentPlayerLeavedTheTournamentEvent &&
|
|
95
|
+
event instanceof jp_ms_common_engine_1.GameTournamentCancelledEvent &&
|
|
96
|
+
event instanceof jp_ms_common_engine_1.GameTournamentWaitedEvent &&
|
|
97
|
+
event instanceof jp_ms_common_engine_1.GameTournamentStartedEvent &&
|
|
98
|
+
event instanceof jp_ms_common_engine_1.GameTournamentFinishedEvent) {
|
|
99
|
+
return event;
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
90
103
|
//# sourceMappingURL=game-table-result.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":";;AASA,kDAmCC;AAED,oDA8BC;AAED,oDA+BC;
|
|
1
|
+
{"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
|
package/dist/views/index.d.ts
CHANGED
package/dist/views/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TournamentBuyTicketDialogView = void 0;
|
|
3
|
+
exports.SimpleRoomConfirmExitDialogView = exports.TournamentBuyTicketDialogView = void 0;
|
|
4
4
|
var tournament_buy_ticket_dialog_view_1 = require("./tournament-buy-ticket-dialog.view");
|
|
5
5
|
Object.defineProperty(exports, "TournamentBuyTicketDialogView", { enumerable: true, get: function () { return tournament_buy_ticket_dialog_view_1.TournamentBuyTicketDialogView; } });
|
|
6
|
+
var simple_room_conifrm_exit_dialog_view_1 = require("./simple-room-conifrm-exit-dialog.view");
|
|
7
|
+
Object.defineProperty(exports, "SimpleRoomConfirmExitDialogView", { enumerable: true, get: function () { return simple_room_conifrm_exit_dialog_view_1.SimpleRoomConfirmExitDialogView; } });
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/views/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,yFAAoF;AAA3E,kJAAA,6BAA6B,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":";;;AAAA,yFAAoF;AAA3E,kJAAA,6BAA6B,OAAA;AACtC,+FAAyF;AAAhF,uJAAA,+BAA+B,OAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SimpleRoomConfirmExitDialogView = void 0;
|
|
4
|
+
const jp_common_models_1 = require("jp.common.models");
|
|
5
|
+
class SimpleRoomConfirmExitDialogView extends jp_common_models_1.UniversalScreenDialogView {
|
|
6
|
+
build() {
|
|
7
|
+
return new jp_common_models_1.StandardDialogComponent(jp_common_models_1.AppScreenDialogIdEnum.DIALOG_SIMPLE_ROOM_CONFIRM_EXIT, this.localeService.t('common.room.screen.dialog.confirm.exit.game.title', { lang: this.lang }), this.localeService.t('common.room.screen.dialog.confirm.exit.game.message', { lang: this.lang }), new jp_common_models_1.FullButtonsButtonsComponent(new jp_common_models_1.TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.ok', { lang: this.lang })), new jp_common_models_1.TextButtonComponent(this.localeService.t('common.room.screen.dialog.confirm.exit.game.cancel', { lang: this.lang }))));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.SimpleRoomConfirmExitDialogView = SimpleRoomConfirmExitDialogView;
|
|
11
|
+
//# sourceMappingURL=simple-room-conifrm-exit-dialog.view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-room-conifrm-exit-dialog.view.js","sourceRoot":"","sources":["../../src/views/simple-room-conifrm-exit-dialog.view.ts"],"names":[],"mappings":";;;AAAA,uDAM0B;AAE1B,MAAa,+BAAgC,SAAQ,4CAAyB;IAC1E,KAAK;QACD,OAAO,IAAI,0CAAuB,CAC9B,wCAAqB,CAAC,+BAA+B,EACrD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAC9F,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,qDAAqD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAChG,IAAI,8CAA2B,CAC3B,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gDAAgD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EACpH,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oDAAoD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAC3H,CACJ,CAAC;IACN,CAAC;CACJ;AAZD,0EAYC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UniversalScreenDialogView,
|
|
1
|
+
import { UniversalScreenDialogView, StandardDialogComponent } from "jp.common.models";
|
|
2
2
|
export declare class TournamentBuyTicketDialogView extends UniversalScreenDialogView {
|
|
3
|
-
build():
|
|
3
|
+
build(): StandardDialogComponent;
|
|
4
4
|
}
|
|
@@ -4,7 +4,7 @@ exports.TournamentBuyTicketDialogView = void 0;
|
|
|
4
4
|
const jp_common_models_1 = require("jp.common.models");
|
|
5
5
|
class TournamentBuyTicketDialogView extends jp_common_models_1.UniversalScreenDialogView {
|
|
6
6
|
build() {
|
|
7
|
-
return jp_common_models_1.
|
|
7
|
+
return new jp_common_models_1.StandardDialogComponent(jp_common_models_1.AppScreenDialogIdEnum.DIALOG_TOURNAMENT_BUY_TICKET, this.localeService.t('common.rooms.screen.buyTicket.title', { lang: this.lang }), this.localeService.t('common.rooms.screen.buyTicket.description', { lang: this.lang }), new jp_common_models_1.FullButtonsButtonsComponent(new jp_common_models_1.TextButtonComponent(this.localeService.t('common.rooms.screen.buyTicket.button.ok', { lang: this.lang })), new jp_common_models_1.TextButtonComponent(this.localeService.t('common.rooms.screen.buyTicket.button.cancel', { lang: this.lang }))));
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
exports.TournamentBuyTicketDialogView = TournamentBuyTicketDialogView;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tournament-buy-ticket-dialog.view.js","sourceRoot":"","sources":["../../src/views/tournament-buy-ticket-dialog.view.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"tournament-buy-ticket-dialog.view.js","sourceRoot":"","sources":["../../src/views/tournament-buy-ticket-dialog.view.ts"],"names":[],"mappings":";;;AAAA,uDAM0B;AAE1B,MAAa,6BAA8B,SAAQ,4CAAyB;IACxE,KAAK;QACD,OAAO,IAAI,0CAAuB,CAC9B,wCAAqB,CAAC,4BAA4B,EAClD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,qCAAqC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAChF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,2CAA2C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACtF,IAAI,8CAA2B,CAC3B,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,yCAAyC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAC7G,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,6CAA6C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACpH,CACJ,CAAC;IACN,CAAC;CACJ;AAZD,sEAYC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jp.ms.common.modules",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.25",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
"@nestjs/mongoose": "11.0.4",
|
|
14
14
|
"@nestjs/websockets": "11.1.9",
|
|
15
15
|
"dayjs": "1.11.18",
|
|
16
|
-
"jp.common.models": "
|
|
16
|
+
"jp.common.models": "file:../jp.common.models",
|
|
17
17
|
"jp.common.utils": "1.0.4",
|
|
18
|
-
"jp.db.schemas": "
|
|
19
|
-
"jp.ms.common.engine": "
|
|
18
|
+
"jp.db.schemas": "file:../jp.ms.common.schemas",
|
|
19
|
+
"jp.ms.common.engine": "file:../jp.ms.common.engine",
|
|
20
20
|
"mongoose": "9.1.5",
|
|
21
21
|
"nestjs-i18n": "10.5.1",
|
|
22
22
|
"node-schedule": "2.1.1",
|
|
@@ -12,15 +12,18 @@ import {
|
|
|
12
12
|
BaseTableGameStateSummary,
|
|
13
13
|
BaseTableGameSummaryItem,
|
|
14
14
|
BaseTableGameStateMovesPanel,
|
|
15
|
+
IAppScreenDialog,
|
|
15
16
|
} from 'jp.common.models';
|
|
16
17
|
import { GameMaster, GamePlayer } from 'jp.ms.common.engine';
|
|
17
|
-
import { formatChips, getPropsFromObject } from 'jp.common.utils';
|
|
18
|
+
import { formatChips, getPropsFromObject, replacePattern } from 'jp.common.utils';
|
|
19
|
+
|
|
20
|
+
import { SimpleRoomConfirmExitDialogView } from '../views'
|
|
18
21
|
|
|
19
22
|
export abstract class BaseTableGameStateAdapter {
|
|
20
23
|
private readonly _master: GameMaster;
|
|
21
24
|
private readonly _currentPlayer: GamePlayer;
|
|
22
25
|
|
|
23
|
-
constructor
|
|
26
|
+
constructor(master: GameMaster, currentPlayer: GamePlayer) {
|
|
24
27
|
this._master = master;
|
|
25
28
|
this._currentPlayer = currentPlayer;
|
|
26
29
|
}
|
|
@@ -53,6 +56,10 @@ export abstract class BaseTableGameStateAdapter {
|
|
|
53
56
|
return this._master.getRoom().getId();
|
|
54
57
|
}
|
|
55
58
|
|
|
59
|
+
getTableTitle (): string {
|
|
60
|
+
return this._master.getTable().getTitleWithNumber(this.lang);
|
|
61
|
+
}
|
|
62
|
+
|
|
56
63
|
getTableId (): string {
|
|
57
64
|
return this._master.getTable().getId();
|
|
58
65
|
}
|
|
@@ -199,9 +206,9 @@ export abstract class BaseTableGameStateAdapter {
|
|
|
199
206
|
summary.list.push(BaseTableGameSummaryItem.newTitleMdItem(
|
|
200
207
|
'pot',
|
|
201
208
|
this.t('room.screen.summary.pot', {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
209
|
+
lang: this.lang,
|
|
210
|
+
args: { POT: formatChips(this.getMaster()?.getGameRound()?.getPot() ?? 0, this.lang, true) },
|
|
211
|
+
},
|
|
205
212
|
),
|
|
206
213
|
));
|
|
207
214
|
|
|
@@ -237,6 +244,15 @@ export abstract class BaseTableGameStateAdapter {
|
|
|
237
244
|
return summary;
|
|
238
245
|
}
|
|
239
246
|
|
|
247
|
+
getConfirmExitDialog (): IAppScreenDialog | undefined {
|
|
248
|
+
if (this._currentPlayer.isPlayer()) {
|
|
249
|
+
return new SimpleRoomConfirmExitDialogView(
|
|
250
|
+
this._master.getRoom().getLocaleService(),
|
|
251
|
+
this.lang
|
|
252
|
+
).build();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
240
256
|
getState (): IBaseTableGameState {
|
|
241
257
|
return {
|
|
242
258
|
roomId: this.getRoomId(),
|
|
@@ -249,6 +265,8 @@ export abstract class BaseTableGameStateAdapter {
|
|
|
249
265
|
summary: this.getSummary(),
|
|
250
266
|
movesPanel: this.getMovesPanel(),
|
|
251
267
|
extraButtons: this.getExtraButtons(),
|
|
268
|
+
tableTitle: this.getTableTitle(),
|
|
269
|
+
confirmExitDialog: this.getConfirmExitDialog(),
|
|
252
270
|
}
|
|
253
271
|
}
|
|
254
272
|
}
|
|
@@ -3,6 +3,8 @@ import {
|
|
|
3
3
|
ICardPlayerState,
|
|
4
4
|
CardsPanelState,
|
|
5
5
|
ICardsPanelState,
|
|
6
|
+
ICardPairSlotState,
|
|
7
|
+
CardPairSlotState,
|
|
6
8
|
} from 'jp.common.models';
|
|
7
9
|
import { CardsGameMaster, CardsPlayer } from 'jp.ms.common.engine';
|
|
8
10
|
|
|
@@ -28,8 +30,16 @@ export abstract class CardTableGameStateAdapter extends BaseTableGameStateAdapte
|
|
|
28
30
|
return false;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
return
|
|
33
|
+
getCardsPanelEnableDragging (): boolean {
|
|
34
|
+
return this.getCurrentPlayer().isActivePlayer();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
getCardsPanelDescription (): string {
|
|
38
|
+
if (this.getCurrentPlayer().isActivePlayer()) {
|
|
39
|
+
return this.t('room.screen.yours.player.turn.timeout', { lang: this.lang });
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return '';
|
|
33
43
|
}
|
|
34
44
|
|
|
35
45
|
getCardsPanel (): ICardsPanelState {
|
|
@@ -37,17 +47,31 @@ export abstract class CardTableGameStateAdapter extends BaseTableGameStateAdapte
|
|
|
37
47
|
this.getCardsPanelIsOpen(),
|
|
38
48
|
this.getPlayerActions(),
|
|
39
49
|
this.getPlayerCards(),
|
|
40
|
-
this.
|
|
50
|
+
this.getCardsPanelEnableDragging(),
|
|
51
|
+
this.getCardsPanelDescription(),
|
|
41
52
|
);
|
|
42
53
|
}
|
|
43
54
|
|
|
55
|
+
getSlots (): Array<ICardPairSlotState> {
|
|
56
|
+
const slots = this.getMaster<CardsGameMaster>().getGameCardPairSlots().getSlots()
|
|
57
|
+
.map((item) => new CardPairSlotState(
|
|
58
|
+
item.id,
|
|
59
|
+
item.bottom,
|
|
60
|
+
item.top,
|
|
61
|
+
item.activated,
|
|
62
|
+
this.getCurrentPlayer().isActivePlayer() ? item.disabled : true,
|
|
63
|
+
));
|
|
64
|
+
|
|
65
|
+
return slots;
|
|
66
|
+
}
|
|
67
|
+
|
|
44
68
|
getState (): ICardTableGameState {
|
|
45
69
|
return {
|
|
46
70
|
...super.getState(),
|
|
47
71
|
players: this.getPlayers(),
|
|
48
72
|
baseCard: this.getMaster<CardsGameMaster>().getGameBaseCard(),
|
|
49
73
|
gameCards: this.getMaster<CardsGameMaster>().getGameCards(),
|
|
50
|
-
gameCardsPair: this.
|
|
74
|
+
gameCardsPair: this.getSlots(),
|
|
51
75
|
cardsPanel: this.getCardsPanel(),
|
|
52
76
|
};
|
|
53
77
|
}
|
package/src/dto/common/index.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { IsNumber, IsString, ValidateNested } from 'class-validator';
|
|
|
3
3
|
import { IBaseTableGameState } from 'jp.common.models';
|
|
4
4
|
import { ApiProperty } from '@nestjs/swagger';
|
|
5
5
|
|
|
6
|
+
import { AppScreenDialogDto } from '../../app-screen/app-screen-dialog.dto';
|
|
7
|
+
|
|
6
8
|
import { BaseTableSummaryDto } from './base-table-summary.dto';
|
|
7
9
|
import { BaseTableMovesPanelDto } from './base-table-moves-panel.dto';
|
|
8
10
|
|
|
@@ -76,4 +78,18 @@ export class BaseTableGameStateDto implements IBaseTableGameState {
|
|
|
76
78
|
@Type(() => BaseTableMovesPanelDto)
|
|
77
79
|
@Expose()
|
|
78
80
|
movesPanel: BaseTableMovesPanelDto;
|
|
81
|
+
|
|
82
|
+
@ApiProperty({
|
|
83
|
+
description: 'Table title',
|
|
84
|
+
required: true,
|
|
85
|
+
type: String,
|
|
86
|
+
})
|
|
87
|
+
@Expose()
|
|
88
|
+
@IsString()
|
|
89
|
+
tableTitle: string;
|
|
90
|
+
|
|
91
|
+
@ValidateNested()
|
|
92
|
+
@Type(() => AppScreenDialogDto)
|
|
93
|
+
@Expose()
|
|
94
|
+
confirmExitDialog?: AppScreenDialogDto;
|
|
79
95
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Expose, Type } from 'class-transformer';
|
|
2
|
-
import { IsArray, IsBoolean, ValidateNested } from 'class-validator';
|
|
2
|
+
import { IsArray, IsBoolean, IsString, ValidateNested } from 'class-validator';
|
|
3
3
|
import { ICardsPanelState } from 'jp.common.models';
|
|
4
4
|
import { ApiProperty } from '@nestjs/swagger';
|
|
5
5
|
|
|
@@ -18,13 +18,13 @@ export class CardsPanelDto implements ICardsPanelState {
|
|
|
18
18
|
isOpen: boolean;
|
|
19
19
|
|
|
20
20
|
@ApiProperty({
|
|
21
|
-
description: '
|
|
21
|
+
description: 'enableDragging',
|
|
22
22
|
required: true,
|
|
23
23
|
type: Boolean,
|
|
24
24
|
})
|
|
25
25
|
@Expose()
|
|
26
26
|
@IsBoolean()
|
|
27
|
-
|
|
27
|
+
enableDragging: boolean;
|
|
28
28
|
|
|
29
29
|
@IsArray()
|
|
30
30
|
@ValidateNested({ each: true })
|
|
@@ -37,4 +37,13 @@ export class CardsPanelDto implements ICardsPanelState {
|
|
|
37
37
|
@Type(() => CardDto)
|
|
38
38
|
@Expose()
|
|
39
39
|
cards: Array<CardDto>;
|
|
40
|
+
|
|
41
|
+
@ApiProperty({
|
|
42
|
+
description: 'description',
|
|
43
|
+
required: true,
|
|
44
|
+
type: String,
|
|
45
|
+
})
|
|
46
|
+
@Expose()
|
|
47
|
+
@IsString()
|
|
48
|
+
description: string;
|
|
40
49
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Injectable } from '@nestjs/common';
|
|
2
|
-
import { GameRoom, ManyTablesTournamentRoom, OneTableTournamentRoom } from 'jp.ms.common.engine';
|
|
2
|
+
import { GameRoom, ManyTablesTournamentRoom, OneTableTournamentRoom, TournamentMaster } from 'jp.ms.common.engine';
|
|
3
3
|
|
|
4
4
|
import { SimpleRoomsManagerService } from '../simple-rooms-manager/simple-rooms-manager.service';
|
|
5
5
|
import { TournamentOneTableRoomsManagerService } from '../tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service';
|
|
@@ -79,10 +79,10 @@ export class AntiFreezeSystemService {
|
|
|
79
79
|
if (item.count === checkCount) {
|
|
80
80
|
if (item.room instanceof OneTableTournamentRoom) {
|
|
81
81
|
const room = this.oneTableRoomsManagerService.getRoomByTableId(item.tableId);
|
|
82
|
-
room?.
|
|
82
|
+
room?.getRoomMaster<TournamentMaster>().cancelTournament();
|
|
83
83
|
} else if (item.room instanceof ManyTablesTournamentRoom) {
|
|
84
84
|
const room = this.manyTablesRoomsManagerService.getRoomByTableId(item.tableId)
|
|
85
|
-
room?.
|
|
85
|
+
room?.getRoomMaster<TournamentMaster>().cancelTournament();
|
|
86
86
|
} else {
|
|
87
87
|
this.simpleRoomsManagerService.getRoomByTableId(item.tableId)?.restartTable(item.tableId);
|
|
88
88
|
}
|
|
@@ -9,7 +9,10 @@ import {
|
|
|
9
9
|
UsersRepository,
|
|
10
10
|
AchievementRepository,
|
|
11
11
|
Achievement,
|
|
12
|
-
AchievementSchema
|
|
12
|
+
AchievementSchema,
|
|
13
|
+
UsersAchievement,
|
|
14
|
+
UsersAchievementSchema,
|
|
15
|
+
UsersAchievementsRepository,
|
|
13
16
|
} from 'jp.db.schemas';
|
|
14
17
|
import {
|
|
15
18
|
BaseAppEvent,
|
|
@@ -41,11 +44,13 @@ import { PlayersManagerService } from '../players-manager';
|
|
|
41
44
|
MongooseModule.forFeature([{ name: User.name, schema: UserSchema }]),
|
|
42
45
|
MongooseModule.forFeature([{ name: ActivityLog.name, schema: ActivityLogSchema }]),
|
|
43
46
|
MongooseModule.forFeature([{ name: Achievement.name, schema: AchievementSchema }]),
|
|
47
|
+
MongooseModule.forFeature([{ name: UsersAchievement.name, schema: UsersAchievementSchema }]),
|
|
44
48
|
],
|
|
45
49
|
providers: [
|
|
46
50
|
UsersRepository,
|
|
47
51
|
ActivityLogRepository,
|
|
48
52
|
AchievementRepository,
|
|
53
|
+
UsersAchievementsRepository,
|
|
49
54
|
EventsBusAppSubscribeService,
|
|
50
55
|
],
|
|
51
56
|
})
|
|
@@ -56,19 +61,21 @@ export abstract class BaseAchievementsModule {
|
|
|
56
61
|
protected readonly usersRepository: UsersRepository,
|
|
57
62
|
protected readonly activityLogRepository: ActivityLogRepository,
|
|
58
63
|
protected readonly achievementRepository: AchievementRepository,
|
|
64
|
+
protected readonly usersAchievementRepository: UsersAchievementsRepository,
|
|
59
65
|
) {
|
|
60
66
|
}
|
|
61
67
|
|
|
62
|
-
async onModuleInit() {
|
|
68
|
+
async onModuleInit () {
|
|
63
69
|
this.eventsBusAppSubscribeService.subscribe(this.onHandleAppEvent);
|
|
64
70
|
}
|
|
65
71
|
|
|
66
|
-
protected async onHandleAppEvent(event: BaseAppEvent) {
|
|
72
|
+
protected async onHandleAppEvent (event: BaseAppEvent) {
|
|
67
73
|
if (event instanceof BaseUserAppEvent) {
|
|
68
74
|
const userId = event.userId;
|
|
69
75
|
const player = this.playersManager.getPlayerById(userId);
|
|
70
76
|
const foundUser = await this.usersRepository.findById(userId);
|
|
71
77
|
const allAchievements: Array<Achievement> = await this.achievementRepository.findAchievements();
|
|
78
|
+
const usersAchievements: Array<UsersAchievement> = await this.usersAchievementRepository.findAchivementsByUserId(userId);
|
|
72
79
|
|
|
73
80
|
if (!player || !foundUser) {
|
|
74
81
|
throw new InternalServerErrorException();
|
|
@@ -77,83 +84,98 @@ export abstract class BaseAchievementsModule {
|
|
|
77
84
|
if (event instanceof UserGotNewLevelAppEvent) {
|
|
78
85
|
// TODO подумать куда перенести LEVEL UP
|
|
79
86
|
player.sendMessage(new SnackbarSendToPlayerWsEvent(
|
|
87
|
+
event.game,
|
|
80
88
|
AppScreenIconEnum.ARROW_UPWARD,
|
|
81
89
|
'level up',
|
|
82
90
|
'buttonText'
|
|
83
91
|
));
|
|
84
92
|
|
|
85
|
-
if (
|
|
93
|
+
if (this.userHasNoAchievement(usersAchievements, GotLevel3Achievement.code)) {
|
|
86
94
|
if (new GotLevel3Achievement(event.newLevel).userGotAchievement()) {
|
|
87
|
-
this.giveAchievement(allAchievements, GotLevel3Achievement.code,
|
|
95
|
+
this.giveAchievement(allAchievements, GotLevel3Achievement.code, foundUser, event.game);
|
|
88
96
|
}
|
|
89
97
|
}
|
|
90
98
|
|
|
91
|
-
if (
|
|
99
|
+
if (this.userHasNoAchievement(usersAchievements, GotLevel10Achievement.code)) {
|
|
92
100
|
if (new GotLevel10Achievement(event.newLevel).userGotAchievement()) {
|
|
93
|
-
this.giveAchievement(allAchievements, GotLevel10Achievement.code,
|
|
101
|
+
this.giveAchievement(allAchievements, GotLevel10Achievement.code, foundUser, event.game);
|
|
94
102
|
}
|
|
95
103
|
}
|
|
96
104
|
|
|
97
105
|
} else if (event instanceof UserPlayedTheGameAppEvent) {
|
|
98
|
-
|
|
106
|
+
|
|
107
|
+
if (this.userHasNoAchievement(usersAchievements, Playd10GamesAchievement.code)) {
|
|
99
108
|
const playdGamesCount = await this.activityLogRepository.getUserPlayedGamesCount(userId);
|
|
100
109
|
|
|
101
110
|
if (new Playd10GamesAchievement(playdGamesCount).userGotAchievement()) {
|
|
102
|
-
this.giveAchievement(allAchievements, Playd10GamesAchievement.code,
|
|
111
|
+
this.giveAchievement(allAchievements, Playd10GamesAchievement.code, foundUser, event.game);
|
|
103
112
|
}
|
|
104
113
|
}
|
|
105
114
|
} else if (event instanceof UserWonTheGameAppEvent) {
|
|
106
|
-
if (
|
|
115
|
+
if (this.userHasNoAchievement(usersAchievements, Won3GamesAchievement.code)) {
|
|
107
116
|
const wonGamesCount = await this.activityLogRepository.getUserWonGamesCount(userId);
|
|
108
117
|
|
|
109
118
|
if (new Won3GamesAchievement(wonGamesCount).userGotAchievement()) {
|
|
110
|
-
this.giveAchievement(allAchievements, Won3GamesAchievement.code,
|
|
119
|
+
this.giveAchievement(allAchievements, Won3GamesAchievement.code, foundUser, event.game);
|
|
111
120
|
}
|
|
112
121
|
}
|
|
113
122
|
|
|
114
|
-
if (
|
|
123
|
+
if (this.userHasNoAchievement(usersAchievements, Won3ProfiAchievement.code)) {
|
|
115
124
|
const wonProfiCount = await this.activityLogRepository.getUserWonProfiCount(userId);
|
|
116
125
|
if (new Won3ProfiAchievement(wonProfiCount).userGotAchievement()) {
|
|
117
|
-
this.giveAchievement(allAchievements, Won3ProfiAchievement.code,
|
|
126
|
+
this.giveAchievement(allAchievements, Won3ProfiAchievement.code, foundUser, event.game);
|
|
118
127
|
}
|
|
119
128
|
}
|
|
120
129
|
|
|
121
|
-
if (
|
|
130
|
+
if (this.userHasNoAchievement(usersAchievements, EarnOneMillionAchievement.code)) {
|
|
122
131
|
if (new EarnOneMillionAchievement(foundUser.balance).userGotAchievement()) {
|
|
123
|
-
this.giveAchievement(allAchievements, EarnOneMillionAchievement.code,
|
|
132
|
+
this.giveAchievement(allAchievements, EarnOneMillionAchievement.code, foundUser, event.game);
|
|
124
133
|
}
|
|
125
134
|
}
|
|
126
135
|
} else if (event instanceof UserWonOneTableTournamentAppEvent) {
|
|
127
|
-
if (
|
|
136
|
+
if (this.userHasNoAchievement(usersAchievements, WonOneTableTournament3TimesAchievement.code)) {
|
|
128
137
|
const wonFastTournamentCount = await this.activityLogRepository.getUserWonOneTableTournamentCount(userId);
|
|
129
138
|
if (new WonOneTableTournament3TimesAchievement(wonFastTournamentCount).userGotAchievement()) {
|
|
130
|
-
this.giveAchievement(allAchievements, WonOneTableTournament3TimesAchievement.code,
|
|
139
|
+
this.giveAchievement(allAchievements, WonOneTableTournament3TimesAchievement.code, foundUser, event.game);
|
|
131
140
|
}
|
|
132
141
|
}
|
|
133
142
|
} else if (event instanceof UserWonManyTablesTournamentAppEvent) {
|
|
134
|
-
if (
|
|
143
|
+
if (this.userHasNoAchievement(usersAchievements, Take1PlaceOnManyTablesTournamentAchievement.code)) {
|
|
135
144
|
if (new Take1PlaceOnManyTablesTournamentAchievement(event.rank)) {
|
|
136
|
-
this.giveAchievement(allAchievements, Take1PlaceOnManyTablesTournamentAchievement.code,
|
|
145
|
+
this.giveAchievement(allAchievements, Take1PlaceOnManyTablesTournamentAchievement.code, foundUser, event.game);
|
|
137
146
|
}
|
|
138
147
|
}
|
|
139
148
|
|
|
140
|
-
if (
|
|
149
|
+
if (this.userHasNoAchievement(usersAchievements, Take2Or3PlaceOnManyTablesTournamentAchievement.code)) {
|
|
141
150
|
if (new Take2Or3PlaceOnManyTablesTournamentAchievement(event.rank)) {
|
|
142
|
-
this.giveAchievement(allAchievements, Take2Or3PlaceOnManyTablesTournamentAchievement.code,
|
|
151
|
+
this.giveAchievement(allAchievements, Take2Or3PlaceOnManyTablesTournamentAchievement.code, foundUser, event.game);
|
|
143
152
|
}
|
|
144
153
|
}
|
|
145
154
|
}
|
|
146
155
|
}
|
|
147
156
|
}
|
|
148
157
|
|
|
149
|
-
protected
|
|
158
|
+
protected userHasNoAchievement (usersAchievements: Array<UsersAchievement>, achievementCode: string) {
|
|
159
|
+
return !usersAchievements.find((item) => item.achievementCode === achievementCode);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
protected async giveAchievement (allAchievements: Array<Achievement>, achievementCode: string, user: User, game: string) {
|
|
150
163
|
const foundAchievement = allAchievements.find((item) => item.code === achievementCode);
|
|
151
|
-
const player = this.playersManager.getPlayerById(userId);
|
|
164
|
+
const player = this.playersManager.getPlayerById(user.userId);
|
|
152
165
|
|
|
153
166
|
if (foundAchievement && player) {
|
|
154
|
-
await this.
|
|
167
|
+
await this.usersAchievementRepository.addUsersAchievement(
|
|
168
|
+
user.userId,
|
|
169
|
+
user.fullName,
|
|
170
|
+
foundAchievement.achievementId,
|
|
171
|
+
foundAchievement.title,
|
|
172
|
+
foundAchievement.code,
|
|
173
|
+
foundAchievement.prize,
|
|
174
|
+
'',
|
|
175
|
+
);
|
|
155
176
|
|
|
156
177
|
player.sendMessage(new SnackbarSendToPlayerWsEvent(
|
|
178
|
+
game,
|
|
157
179
|
AppScreenIconEnum.EMOJI_EVENTS,
|
|
158
180
|
foundAchievement.title,
|
|
159
181
|
foundAchievement.description
|
|
@@ -28,7 +28,7 @@ export class EventsBusMainTablesSubscribeService {
|
|
|
28
28
|
this.roomStatesSubject.next(event);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
subscribe(onHandleStatusRoomChange: () => void) {
|
|
31
|
+
subscribe(onHandleStatusRoomChange: (event: RoomUpdateStateEvent) => void) {
|
|
32
32
|
this.roomStatesSubject.subscribe(onHandleStatusRoomChange);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -40,7 +40,7 @@ export class MainTablesListScreenView extends UniversalScreenView {
|
|
|
40
40
|
this.manyTablesTournamentRooms = manyTablesTournamentRooms;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
build(): IAppScreen {
|
|
43
|
+
build (): IAppScreen {
|
|
44
44
|
const oneTableTournamentsCardList = this.oneTableTournamentRooms.map((room) =>
|
|
45
45
|
AppScreenSectionListItem.CreateCardListItemMini(
|
|
46
46
|
room.getId(),
|
|
@@ -67,7 +67,7 @@ export class MainTablesListScreenView extends UniversalScreenView {
|
|
|
67
67
|
const simpleRoomsTableCardList = this.simpleRooms.reduce<Array<AppScreenSectionListItem>>((result, room) => {
|
|
68
68
|
const list = room.getTables().map((table) => AppScreenSectionListItem.CreateCardListItemMini(
|
|
69
69
|
table.getId(),
|
|
70
|
-
|
|
70
|
+
table.getTitleWithNumber(this.lang),
|
|
71
71
|
replacePattern(table.getSubtitle(this.lang), {
|
|
72
72
|
HALF_BET: table.getHalfBet().toString(),
|
|
73
73
|
BET: table.getBet().toString()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Controller, Get, Headers } from '@nestjs/common';
|
|
2
2
|
import { IAppHeaders, IBaseAppScreen } from 'jp.common.models';
|
|
3
3
|
|
|
4
|
-
import { PlayerCheckStateDto } from '../../dto';
|
|
4
|
+
import { PlayerCheckStateDto, FindFreeTableDto } from '../../dto';
|
|
5
5
|
|
|
6
6
|
import { MainService } from './main.service';
|
|
7
7
|
|
|
@@ -11,7 +11,7 @@ export class MainController {
|
|
|
11
11
|
private readonly mainService: MainService,
|
|
12
12
|
) { }
|
|
13
13
|
|
|
14
|
-
@Get('
|
|
14
|
+
@Get('player_check_state')
|
|
15
15
|
checkState(@Headers() headers: IAppHeaders): Promise<PlayerCheckStateDto> {
|
|
16
16
|
return this.mainService.playerCheckState(headers.client_auth_token, headers.client_game);
|
|
17
17
|
}
|
|
@@ -31,8 +31,8 @@ export class MainController {
|
|
|
31
31
|
return this.mainService.unsubscribeFromTablesScreen(headers.client_language);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
@Get('
|
|
35
|
-
findFreeTable(@Headers() headers: IAppHeaders) {
|
|
34
|
+
@Get('find_free_table')
|
|
35
|
+
findFreeTable(@Headers() headers: IAppHeaders): FindFreeTableDto {
|
|
36
36
|
return this.mainService.findFreeTable(headers.client_auth_token);
|
|
37
37
|
}
|
|
38
38
|
}
|