jp.ms.common.modules 1.0.28 → 1.0.30

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 (95) hide show
  1. package/dist/exception/error-code.enum.d.ts +4 -0
  2. package/dist/exception/error-code.enum.js +9 -0
  3. package/dist/exception/error-code.enum.js.map +1 -0
  4. package/dist/exception/global-exception-filter.d.ts +5 -0
  5. package/dist/exception/global-exception-filter.js +53 -0
  6. package/dist/exception/global-exception-filter.js.map +1 -0
  7. package/dist/exception/http-exception-wth-snackbar.d.ts +12 -0
  8. package/dist/exception/http-exception-wth-snackbar.js +17 -0
  9. package/dist/exception/http-exception-wth-snackbar.js.map +1 -0
  10. package/dist/exception/index.d.ts +4 -0
  11. package/dist/exception/index.js +12 -0
  12. package/dist/exception/index.js.map +1 -0
  13. package/dist/exception/not-enough-money-for-purchase.exception.d.ts +5 -0
  14. package/dist/exception/not-enough-money-for-purchase.exception.js +12 -0
  15. package/dist/exception/not-enough-money-for-purchase.exception.js.map +1 -0
  16. package/dist/exception/not-found-free-room-for-fast-game.exception.d.ts +5 -0
  17. package/dist/exception/not-found-free-room-for-fast-game.exception.js +12 -0
  18. package/dist/exception/not-found-free-room-for-fast-game.exception.js.map +1 -0
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/modules/events/events.gateway.js +1 -1
  23. package/dist/modules/events/events.gateway.js.map +1 -1
  24. package/dist/modules/main/main-tables-list-screen.view.d.ts +11 -1
  25. package/dist/modules/main/main-tables-list-screen.view.js +97 -14
  26. package/dist/modules/main/main-tables-list-screen.view.js.map +1 -1
  27. package/dist/modules/main/main.controller.d.ts +4 -3
  28. package/dist/modules/main/main.controller.js +15 -3
  29. package/dist/modules/main/main.controller.js.map +1 -1
  30. package/dist/modules/main/main.module.js +2 -2
  31. package/dist/modules/main/main.module.js.map +1 -1
  32. package/dist/modules/main/main.service.d.ts +5 -4
  33. package/dist/modules/main/main.service.js +38 -12
  34. package/dist/modules/main/main.service.js.map +1 -1
  35. package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.d.ts +4 -0
  36. package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js +56 -4
  37. package/dist/modules/many-tables-tournament/many-tables-tournament-status-screen.view.js.map +1 -1
  38. package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js +3 -3
  39. package/dist/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.js.map +1 -1
  40. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.d.ts +3 -4
  41. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js +5 -17
  42. package/dist/modules/many-tables-tournament/many-tables-tournament.controller.js.map +1 -1
  43. package/dist/modules/many-tables-tournament/many-tables-tournament.service.d.ts +3 -4
  44. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js +20 -27
  45. package/dist/modules/many-tables-tournament/many-tables-tournament.service.js.map +1 -1
  46. package/dist/modules/menu/menu.service.js +1 -2
  47. package/dist/modules/menu/menu.service.js.map +1 -1
  48. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.d.ts +1 -0
  49. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js +18 -5
  50. package/dist/modules/one-table-tournament/one-table-tournament-status-screen.view.js.map +1 -1
  51. package/dist/modules/one-table-tournament/one-table-tournament.controller.js.map +1 -1
  52. package/dist/modules/one-table-tournament/one-table-tournament.service.js +1 -2
  53. package/dist/modules/one-table-tournament/one-table-tournament.service.js.map +1 -1
  54. package/dist/modules/simple-rooms-manager/simple-rooms-manager.service.js.map +1 -1
  55. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.d.ts +3 -1
  56. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js +14 -3
  57. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.js.map +1 -1
  58. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.d.ts +4 -3
  59. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js +49 -25
  60. package/dist/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.js.map +1 -1
  61. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js +9 -6
  62. package/dist/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.js.map +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/dist/utils/game-table-result.d.ts +1 -2
  65. package/dist/utils/game-table-result.js +0 -13
  66. package/dist/utils/game-table-result.js.map +1 -1
  67. package/dist/views/tournament-buy-ticket-dialog.view.js +1 -1
  68. package/dist/views/tournament-buy-ticket-dialog.view.js.map +1 -1
  69. package/package.json +4 -4
  70. package/src/exception/error-code.enum.ts +4 -0
  71. package/src/exception/global-exception-filter.ts +50 -0
  72. package/src/exception/http-exception-wth-snackbar.ts +23 -0
  73. package/src/exception/index.ts +4 -0
  74. package/src/exception/not-enough-money-for-purchase.exception.ts +15 -0
  75. package/src/exception/not-found-free-room-for-fast-game.exception.ts +15 -0
  76. package/src/index.ts +1 -0
  77. package/src/modules/events/events.gateway.ts +1 -1
  78. package/src/modules/main/main-tables-list-screen.view.ts +177 -55
  79. package/src/modules/main/main.controller.ts +23 -10
  80. package/src/modules/main/main.module.ts +2 -2
  81. package/src/modules/main/main.service.ts +53 -19
  82. package/src/modules/many-tables-tournament/many-tables-tournament-status-screen.view.ts +97 -31
  83. package/src/modules/many-tables-tournament/many-tables-tournament-tables-list-screen.view.ts +25 -17
  84. package/src/modules/many-tables-tournament/many-tables-tournament.controller.ts +5 -14
  85. package/src/modules/many-tables-tournament/many-tables-tournament.service.ts +45 -57
  86. package/src/modules/menu/menu.service.ts +6 -9
  87. package/src/modules/one-table-tournament/one-table-tournament-status-screen.view.ts +43 -17
  88. package/src/modules/one-table-tournament/one-table-tournament.controller.ts +0 -1
  89. package/src/modules/one-table-tournament/one-table-tournament.service.ts +6 -9
  90. package/src/modules/simple-rooms-manager/simple-rooms-manager.service.ts +0 -2
  91. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.module.ts +17 -9
  92. package/src/modules/tournament-many-tables-rooms-manager/tournament-many-tables-rooms-manager.service.ts +57 -26
  93. package/src/modules/tournament-one-table-rooms-manager/tournament-one-table-rooms-manager.service.ts +10 -7
  94. package/src/utils/game-table-result.ts +1 -16
  95. package/src/views/tournament-buy-ticket-dialog.view.ts +4 -4
@@ -1,6 +1,6 @@
1
1
  import { Connection } from 'mongoose';
2
- import { BaseGameEvent, GameMaster, GameTournamentPlayerLeavedTheTournamentEvent, TournamentMaster } from 'jp.ms.common.engine';
3
2
  import { GameResultRepository, TournamentManyTablesRoomsRepository, TournamentOneTableRoomsRepository, UsersRepository } from 'jp.db.schemas';
3
+ import { GameMaster, TournamentMaster } from 'jp.ms.common.engine';
4
4
  export declare function getGameTableResults(master: GameMaster): {
5
5
  gameType: string;
6
6
  gameId: string;
@@ -37,4 +37,3 @@ 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,8 +3,6 @@ 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");
8
6
  function getGameTableResults(master) {
9
7
  return {
10
8
  gameType: master.getRoom().getGameType(),
@@ -89,15 +87,4 @@ async function saveTournamentResult(master, connection, tournamentRepository, us
89
87
  await session.endSession();
90
88
  }
91
89
  }
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
- }
103
90
  //# 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":"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"}
1
+ {"version":3,"file":"game-table-result.js","sourceRoot":"","sources":["../../src/utils/game-table-result.ts"],"names":[],"mappings":"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"}
@@ -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 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 }))));
7
+ return new jp_common_models_1.StandardDialogComponent(jp_common_models_1.AppScreenDialogIdEnum.DIALOG_TOURNAMENT_BUY_TICKET, this.localeService.t('common.rooms.screen.dialog.buy.ticket.title', { lang: this.lang }), this.localeService.t('common.rooms.screen.dialog.buy.ticket.description', { lang: this.lang }), new jp_common_models_1.FullButtonsButtonsComponent(new jp_common_models_1.TextButtonComponent(this.localeService.t('common.rooms.screen.dialog.buy.ticket.ok', { lang: this.lang })), new jp_common_models_1.TextButtonComponent(this.localeService.t('common.rooms.screen.dialog.buy.ticket.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,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"}
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,6CAA6C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACxF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EAC9F,IAAI,8CAA2B,CAC3B,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAC9G,IAAI,sCAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,8CAA8C,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CACrH,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.28",
3
+ "version": "1.0.30",
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": "1.1.12",
16
+ "jp.common.models": "1.1.23",
17
17
  "jp.common.utils": "1.0.4",
18
- "jp.db.schemas": "2.2.3",
19
- "jp.ms.common.engine": "3.0.10",
18
+ "jp.db.schemas": "2.2.8",
19
+ "jp.ms.common.engine": "3.0.13",
20
20
  "mongoose": "9.1.5",
21
21
  "nestjs-i18n": "10.5.1",
22
22
  "node-schedule": "2.1.1",
@@ -0,0 +1,4 @@
1
+ export enum ErrorCodeEnum {
2
+ NOT_ENOUGH_MONEY_FOR_PURCHASE = '1001',
3
+ NOT_FOUND_FREE_ROOM_FOR_FAST_GAME = '1002',
4
+ }
@@ -0,0 +1,50 @@
1
+ import { ExceptionFilter, Catch, ArgumentsHost, HttpException, HttpCode, HttpStatus } from '@nestjs/common';
2
+ import { Response } from 'express';
3
+
4
+ import { JpLoggerService } from '../modules';
5
+
6
+ import { ErrorResponseWithSnackbar, HttpExceptionWithSnackbar } from './http-exception-wth-snackbar';
7
+
8
+ @Catch(Error)
9
+ export class GlobalExceptionFilter implements ExceptionFilter {
10
+ private readonly logger = new JpLoggerService();
11
+
12
+ catch (exception: Error, host: ArgumentsHost) {
13
+ this.logger.error(exception);
14
+ const ctx = host.switchToHttp();
15
+ const response = ctx.getResponse<Response>();
16
+
17
+ if (exception instanceof HttpExceptionWithSnackbar) {
18
+ const data = exception.getResponse() as ErrorResponseWithSnackbar;
19
+ const status = exception.getStatus();
20
+
21
+ response
22
+ .status(status)
23
+ .json({
24
+ statusCode: status,
25
+ message: exception.message,
26
+ snackbar: data.snackbar,
27
+ });
28
+
29
+ return;
30
+ } else if (exception instanceof HttpException) {
31
+ const status = exception.getStatus();
32
+
33
+ response
34
+ .status(status)
35
+ .json({
36
+ statusCode: status,
37
+ message: exception.message,
38
+ });
39
+
40
+ return;
41
+ }
42
+
43
+ response
44
+ .status(HttpStatus.INTERNAL_SERVER_ERROR)
45
+ .json({
46
+ statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
47
+ message: exception.message,
48
+ });
49
+ }
50
+ }
@@ -0,0 +1,23 @@
1
+ import { HttpException, HttpStatus } from '@nestjs/common';
2
+ import { IAppScreenSnackbar } from 'jp.common.models';
3
+
4
+ import { ErrorCodeEnum } from './error-code.enum';
5
+
6
+ export interface ErrorResponseWithSnackbar {
7
+ statusCode: number;
8
+ message: string;
9
+ errorCode: string;
10
+ snackbar: IAppScreenSnackbar;
11
+ }
12
+
13
+ export class HttpExceptionWithSnackbar extends HttpException {
14
+ constructor(message: string, errorCode: ErrorCodeEnum, snackbar: IAppScreenSnackbar) {
15
+ const response: ErrorResponseWithSnackbar = {
16
+ statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
17
+ message,
18
+ errorCode,
19
+ snackbar,
20
+ };
21
+ super(response, HttpStatus.INTERNAL_SERVER_ERROR);
22
+ }
23
+ }
@@ -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
@@ -2,3 +2,4 @@ export * from './dto';
2
2
  export * from './modules';
3
3
  export * from './config';
4
4
  export * from './adapter';
5
+ export * from './exception';
@@ -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.language,
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
- router,
14
- AppScreenSectionButtons,
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
- const oneTableTournamentsCardList = this.oneTableTournamentRooms.map((room) =>
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
- AppScreenAppBar.CreateStandardAppBar(
58
+ new StandardAppBarComponent(
86
59
  this.localeService.t('common.rooms.screen.title', { lang: this.lang }),
87
- AppScreenSectionButton.CreateArrowBackButton(this.localeService.t('common.button.back', { lang: this.lang })),
60
+ new ArrowBackButtonComponent(
61
+ this.localeService.t('common.button.back', { lang: this.lang })
62
+ ),
88
63
  ),
89
64
  )
90
65
  .addSection(
91
- AppScreenSection.CreateCardListSection(
66
+ new CardListSectionComponent(
92
67
  'id1',
93
68
  [
94
- ...manyTablesTournamentsCardList,
95
- ...oneTableTournamentsCardList,
96
- ...simpleRoomsTableCardList
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, IBaseAppScreen } from 'jp.common.models';
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): IBaseAppScreen {
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
  }