mongodb-dynamic-api 2.6.0 → 2.7.0

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 (123) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +1 -2
  3. package/src/helpers/index.d.ts +1 -1
  4. package/src/helpers/index.js +1 -1
  5. package/src/helpers/index.js.map +1 -1
  6. package/src/helpers/mixin-data.helper.d.ts +12 -0
  7. package/src/helpers/mixin-data.helper.js +30 -0
  8. package/src/helpers/mixin-data.helper.js.map +1 -0
  9. package/src/interfaces/dynamic-api-route-dtos-bundle.type.d.ts +9 -1
  10. package/src/mixins/entity-body.mixin.d.ts +1 -1
  11. package/src/mixins/entity-body.mixin.js +2 -2
  12. package/src/mixins/entity-body.mixin.js.map +1 -1
  13. package/src/routes/create-many/create-many-body.mixin.d.ts +17 -0
  14. package/src/routes/create-many/{create-many-body-dto.mixin.js → create-many-body.mixin.js} +15 -10
  15. package/src/routes/create-many/create-many-body.mixin.js.map +1 -0
  16. package/src/routes/create-many/create-many-controller.interface.d.ts +2 -2
  17. package/src/routes/create-many/create-many-controller.mixin.d.ts +1 -1
  18. package/src/routes/create-many/create-many-controller.mixin.js +33 -7
  19. package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
  20. package/src/routes/create-many/create-many-gateway.interface.d.ts +2 -2
  21. package/src/routes/create-many/create-many-gateway.mixin.d.ts +1 -1
  22. package/src/routes/create-many/create-many-gateway.mixin.js +29 -8
  23. package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
  24. package/src/routes/create-many/create-many-presenter.mixin.d.ts +17 -0
  25. package/src/routes/create-many/create-many-presenter.mixin.js +11 -0
  26. package/src/routes/create-many/create-many-presenter.mixin.js.map +1 -0
  27. package/src/routes/create-many/index.d.ts +2 -1
  28. package/src/routes/create-many/index.js +2 -1
  29. package/src/routes/create-many/index.js.map +1 -1
  30. package/src/routes/create-one/create-one-controller.interface.d.ts +2 -2
  31. package/src/routes/create-one/create-one-controller.mixin.d.ts +1 -1
  32. package/src/routes/create-one/create-one-controller.mixin.js +23 -7
  33. package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
  34. package/src/routes/create-one/create-one-gateway.interface.d.ts +2 -2
  35. package/src/routes/create-one/create-one-gateway.mixin.d.ts +1 -1
  36. package/src/routes/create-one/create-one-gateway.mixin.js +22 -7
  37. package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
  38. package/src/routes/delete-many/base-delete-many.service.js +3 -3
  39. package/src/routes/delete-many/base-delete-many.service.js.map +1 -1
  40. package/src/routes/delete-many/delete-many-controller.interface.d.ts +4 -3
  41. package/src/routes/delete-many/delete-many-controller.mixin.d.ts +1 -1
  42. package/src/routes/delete-many/delete-many-controller.mixin.js +14 -6
  43. package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
  44. package/src/routes/delete-many/delete-many-gateway.interface.d.ts +4 -4
  45. package/src/routes/delete-many/delete-many-gateway.mixin.d.ts +1 -1
  46. package/src/routes/delete-many/delete-many-gateway.mixin.js +13 -5
  47. package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -1
  48. package/src/routes/delete-one/base-delete-one.service.js +3 -3
  49. package/src/routes/delete-one/base-delete-one.service.js.map +1 -1
  50. package/src/routes/delete-one/delete-one-controller.interface.d.ts +3 -3
  51. package/src/routes/delete-one/delete-one-controller.mixin.d.ts +1 -1
  52. package/src/routes/delete-one/delete-one-controller.mixin.js +15 -7
  53. package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
  54. package/src/routes/delete-one/delete-one-gateway.interface.d.ts +4 -4
  55. package/src/routes/delete-one/delete-one-gateway.mixin.d.ts +1 -1
  56. package/src/routes/delete-one/delete-one-gateway.mixin.js +13 -5
  57. package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -1
  58. package/src/routes/duplicate-many/duplicate-many-controller.interface.d.ts +2 -2
  59. package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +1 -1
  60. package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +24 -7
  61. package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
  62. package/src/routes/duplicate-many/duplicate-many-gateway.interface.d.ts +2 -2
  63. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.d.ts +1 -1
  64. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +22 -5
  65. package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
  66. package/src/routes/duplicate-many/duplicate-many-service.interface.d.ts +2 -2
  67. package/src/routes/duplicate-one/duplicate-one-controller.interface.d.ts +2 -2
  68. package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +1 -1
  69. package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +24 -7
  70. package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
  71. package/src/routes/duplicate-one/duplicate-one-gateway.interface.d.ts +2 -2
  72. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.d.ts +1 -1
  73. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +22 -5
  74. package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
  75. package/src/routes/get-many/get-many-controller.interface.d.ts +2 -2
  76. package/src/routes/get-many/get-many-controller.mixin.d.ts +1 -1
  77. package/src/routes/get-many/get-many-controller.mixin.js +18 -8
  78. package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
  79. package/src/routes/get-many/get-many-gateway.interface.d.ts +2 -2
  80. package/src/routes/get-many/get-many-gateway.mixin.d.ts +1 -1
  81. package/src/routes/get-many/get-many-gateway.mixin.js +20 -7
  82. package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -1
  83. package/src/routes/get-one/get-one-controller.interface.d.ts +2 -2
  84. package/src/routes/get-one/get-one-controller.mixin.d.ts +1 -1
  85. package/src/routes/get-one/get-one-controller.mixin.js +14 -4
  86. package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
  87. package/src/routes/get-one/get-one-gateway.interface.d.ts +2 -2
  88. package/src/routes/get-one/get-one-gateway.mixin.d.ts +1 -1
  89. package/src/routes/get-one/get-one-gateway.mixin.js +14 -5
  90. package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
  91. package/src/routes/replace-one/replace-one-controller.interface.d.ts +2 -2
  92. package/src/routes/replace-one/replace-one-controller.mixin.d.ts +1 -1
  93. package/src/routes/replace-one/replace-one-controller.mixin.js +25 -8
  94. package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
  95. package/src/routes/replace-one/replace-one-gateway.interface.d.ts +2 -2
  96. package/src/routes/replace-one/replace-one-gateway.mixin.d.ts +1 -1
  97. package/src/routes/replace-one/replace-one-gateway.mixin.js +22 -6
  98. package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
  99. package/src/routes/update-many/update-many-controller.interface.d.ts +2 -2
  100. package/src/routes/update-many/update-many-controller.mixin.d.ts +1 -1
  101. package/src/routes/update-many/update-many-controller.mixin.js +27 -7
  102. package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
  103. package/src/routes/update-many/update-many-gateway.interface.d.ts +2 -2
  104. package/src/routes/update-many/update-many-gateway.mixin.d.ts +1 -1
  105. package/src/routes/update-many/update-many-gateway.mixin.js +23 -6
  106. package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
  107. package/src/routes/update-one/update-one-controller.interface.d.ts +2 -2
  108. package/src/routes/update-one/update-one-controller.mixin.d.ts +1 -1
  109. package/src/routes/update-one/update-one-controller.mixin.js +29 -8
  110. package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
  111. package/src/routes/update-one/update-one-gateway.interface.d.ts +2 -2
  112. package/src/routes/update-one/update-one-gateway.mixin.d.ts +1 -1
  113. package/src/routes/update-one/update-one-gateway.mixin.js +22 -6
  114. package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
  115. package/src/services/base/base.service.js +5 -4
  116. package/src/services/base/base.service.js.map +1 -1
  117. package/src/version.json +1 -1
  118. package/tsconfig.tsbuildinfo +1 -1
  119. package/src/helpers/controller-mixin.helper.d.ts +0 -14
  120. package/src/helpers/controller-mixin.helper.js +0 -132
  121. package/src/helpers/controller-mixin.helper.js.map +0 -1
  122. package/src/routes/create-many/create-many-body-dto.mixin.d.ts +0 -7
  123. package/src/routes/create-many/create-many-body-dto.mixin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAmC;AAEnC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,yBAAyB,CAChC,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,GACT,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAElF,MAAM,wBAAyB,SAAQ,sBAAmB;QAGxD,YACqB,OAAqC,EACrC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA8B;YACrC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,aAAa,CACE,MAA8B,EAClC,IAAuC;YAEtD,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC;YAEvC,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,aAA2C,CAAC;aACzF,CAAC;QACJ,CAAC;KACF;IAjBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;;;iEAcf;IAGH,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE;QACtD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAEQ,8DAAyB"}
1
+ {"version":3,"file":"duplicate-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-gateway.mixin.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BaseEntity } from '../../models';
2
- interface DuplicateManyService<Entity extends BaseEntity> {
3
- duplicateMany(ids: string[], partial: Partial<Entity> | undefined): Promise<Entity[]>;
2
+ interface DuplicateManyService<Entity extends BaseEntity, Response = any> {
3
+ duplicateMany(ids: string[], partial?: Partial<Entity>): Promise<(Entity | Response)[]>;
4
4
  }
5
5
  export type { DuplicateManyService };
@@ -1,7 +1,7 @@
1
1
  import { BaseEntity } from '../../models';
2
2
  import { DuplicateOneService } from './duplicate-one-service.interface';
3
- interface DuplicateOneController<Entity extends BaseEntity> {
4
- duplicateOne(id: string, body?: Partial<Entity>): Promise<Entity>;
3
+ interface DuplicateOneController<Entity extends BaseEntity, Response = any> {
4
+ duplicateOne(id: string, body?: Partial<Entity>): Promise<Entity | Response>;
5
5
  }
6
6
  type DuplicateOneControllerConstructor<Entity extends BaseEntity> = new (service: DuplicateOneService<Entity>) => DuplicateOneController<Entity>;
7
7
  export type { DuplicateOneController, DuplicateOneControllerConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { DuplicateOneControllerConstructor } from './duplicate-one-controller.interface';
5
- declare function DuplicateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneControllerConstructor<Entity>;
5
+ declare function DuplicateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneControllerConstructor<Entity>;
6
6
  export { DuplicateOneControllerMixin };
@@ -14,17 +14,31 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DuplicateOneControllerMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const lodash_1 = require("lodash");
17
18
  const builders_1 = require("../../builders");
18
19
  const dtos_1 = require("../../dtos");
19
20
  const helpers_1 = require("../../helpers");
20
21
  const mixins_1 = require("../../mixins");
21
- function DuplicateOneControllerMixin(entity, controllerOptions, routeConfig, version) {
22
- var _a;
23
- const { routeType, displayedName, description, isPublic, RouteBody, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
22
+ function DuplicateOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
23
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
24
+ class DuplicateOneBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
25
+ }
26
+ Object.defineProperty(DuplicateOneBody, 'name', {
27
+ value: `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
28
+ writable: false,
29
+ });
30
+ class DuplicateOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
31
+ }
32
+ Object.defineProperty(DuplicateOnePresenter, 'name', {
33
+ value: dTOs?.presenter
34
+ ? `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
35
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
36
+ writable: false,
37
+ });
24
38
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DuplicateOne', entity, routeConfig.subPath, version, description, isPublic, {
25
39
  param: dtos_1.EntityParam,
26
- body: RouteBody,
27
- presenter: RoutePresenter,
40
+ body: DuplicateOneBody,
41
+ presenter: DuplicateOnePresenter,
28
42
  });
29
43
  class DuplicateOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
30
44
  }
@@ -34,7 +48,10 @@ function DuplicateOneControllerMixin(entity, controllerOptions, routeConfig, ver
34
48
  this.entity = entity;
35
49
  }
36
50
  async duplicateOne(id, body) {
37
- return this.service.duplicateOne(id, body);
51
+ const toEntity = DuplicateOneBody.toEntity;
52
+ const entity = await this.service.duplicateOne(id, !(0, lodash_1.isEmpty)(body) && toEntity ? toEntity(body) : body);
53
+ const fromEntity = DuplicateOnePresenter.fromEntity;
54
+ return fromEntity ? fromEntity(entity) : entity;
38
55
  }
39
56
  }
40
57
  __decorate([
@@ -43,7 +60,7 @@ function DuplicateOneControllerMixin(entity, controllerOptions, routeConfig, ver
43
60
  __param(0, (0, common_1.Param)('id')),
44
61
  __param(1, (0, common_1.Body)()),
45
62
  __metadata("design:type", Function),
46
- __metadata("design:paramtypes", [String, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
63
+ __metadata("design:paramtypes", [String, DuplicateOneBody]),
47
64
  __metadata("design:returntype", Promise)
48
65
  ], BaseDuplicateOneController.prototype, "duplicateOne", null);
49
66
  Object.defineProperty(BaseDuplicateOneController, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,qCAAyC;AACzC,2CAA2F;AAE3F,yCAAwD;AAKxD,SAAS,2BAA2B,CAClC,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,cAAc,EACd,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,KAAK,EAAE,kBAAW;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,cAAc;KAC1B,CACF,CAAC;IAEF,MAAM,yBAA0B,SAAQ,IAAA,iCAAwB,EAC9D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,0BAA0B;QAG9B,YAA+B,OAAoC;YAApC,YAAO,GAAP,OAAO,CAA6B;YAFhD,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAKK,AAAN,KAAK,CAAC,YAAY,CAAc,EAAU,EAAU,IAAgB;YAClE,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,IAAW,CAAC,CAAC;QACpD,CAAC;KACF;IAHO;QAHL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,yBAAyB,CAAC;QAEjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;QAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;qEAAQ,SAAS,oBAAT,SAAS;;kEAEnE;IAGH,MAAM,CAAC,cAAc,CAAC,0BAA0B,EAAE,MAAM,EAAE;QACxD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QACjF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAEQ,kEAA2B"}
1
+ {"version":3,"file":"duplicate-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-controller.mixin.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { EntityParam } from '../../dtos';
3
3
  import { ExtendedSocket, GatewayResponse } from '../../interfaces';
4
4
  import { BaseEntity } from '../../models';
5
5
  import { DuplicateOneService } from './duplicate-one-service.interface';
6
- interface DuplicateOneGateway<Entity extends BaseEntity> {
7
- duplicateOne(socket: ExtendedSocket, body: EntityParam & Partial<Entity>): GatewayResponse<Entity>;
6
+ interface DuplicateOneGateway<Entity extends BaseEntity, Body = any, Response = any> {
7
+ duplicateOne(socket: ExtendedSocket, body: EntityParam & Body): GatewayResponse<Entity | Response>;
8
8
  }
9
9
  type DuplicateOneGatewayConstructor<Entity extends BaseEntity> = new (service: DuplicateOneService<Entity>, jwtService: JwtService) => DuplicateOneGateway<Entity>;
10
10
  export type { DuplicateOneGateway, DuplicateOneGatewayConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { DuplicateOneGatewayConstructor } from './duplicate-one-gateway.interface';
5
- declare function DuplicateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneGatewayConstructor<Entity>;
5
+ declare function DuplicateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneGatewayConstructor<Entity>;
6
6
  export { DuplicateOneGatewayMixin };
@@ -19,9 +19,23 @@ const lodash_1 = require("lodash");
19
19
  const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
20
20
  const gateways_1 = require("../../gateways");
21
21
  const helpers_1 = require("../../helpers");
22
- function DuplicateOneGatewayMixin(entity, controllerOptions, routeConfig, version) {
23
- const { routeType, displayedName, isPublic, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
24
- const event = routeConfig.eventName ?? (0, lodash_1.kebabCase)(`${routeType}/${displayedName}`);
22
+ const mixins_1 = require("../../mixins");
23
+ function DuplicateOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
24
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
25
+ class DuplicateOneData extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
26
+ }
27
+ Object.defineProperty(DuplicateOneData, 'name', {
28
+ value: `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
29
+ writable: false,
30
+ });
31
+ class DuplicateOneResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
32
+ }
33
+ Object.defineProperty(DuplicateOneResponse, 'name', {
34
+ value: dTOs?.presenter
35
+ ? `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
36
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
37
+ writable: false,
38
+ });
25
39
  class BaseDuplicateOneGateway extends gateways_1.BaseGateway {
26
40
  constructor(service, jwtService) {
27
41
  super(jwtService);
@@ -34,10 +48,13 @@ function DuplicateOneGatewayMixin(entity, controllerOptions, routeConfig, versio
34
48
  throw new websockets_1.WsException('Invalid request body');
35
49
  }
36
50
  this.addUserToSocket(socket, isPublic);
37
- const { id, ...partialEntity } = body;
51
+ const { id, ...data } = body;
52
+ const toEntity = DuplicateOneData.toEntity;
53
+ const entity = await this.service.duplicateOne(id, !(0, lodash_1.isEmpty)(data) && toEntity ? toEntity(data) : data);
54
+ const fromEntity = DuplicateOneResponse.fromEntity;
38
55
  return {
39
56
  event,
40
- data: await this.service.duplicateOne(id, partialEntity),
57
+ data: fromEntity ? fromEntity(entity) : entity,
41
58
  };
42
59
  }
43
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAmC;AAEnC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,GACT,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAElF,MAAM,uBAAwB,SAAQ,sBAAmB;QAGvD,YACqB,OAAoC,EACpC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA6B;YACpC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,YAAY,CACG,MAA8B,EAClC,IAAmC;YAElD,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC;YAEtC,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,aAA2C,CAAC;aACvF,CAAC;QACJ,CAAC;KACF;IAjBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;;;+DAcf;IAGH,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACrD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAEQ,4DAAwB"}
1
+ {"version":3,"file":"duplicate-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAiC;AAEjC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAqE;AAKrE,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,MAAM,gBAAiB,SAAQ,CAC7B,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAC5C;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;QAC9C,KAAK,EAAE,eAAe,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,MAAM;QACrE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,oBAAqB,SAAQ,CACjC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,eAAe,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACpE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,uBAAwB,SAAQ,sBAAmB;QAGvD,YACqB,OAAoC,EACpC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA6B;YACpC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,YAAY,CACG,MAA8B,EAClC,IAAoC;YAEnD,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;YAE7B,MAAM,QAAQ,GACZ,gBACD,CAAC,QAAQ,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5C,EAAE,EACF,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CACtE,CAAC;YAEF,MAAM,UAAU,GACd,oBACD,CAAC,UAAU,CAAC;YAEb,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAuB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;aACrE,CAAC;QACJ,CAAC;KACF;IA9BO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;;;+DA2Bf;IAGH,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACrD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAEQ,4DAAwB"}
@@ -1,7 +1,7 @@
1
1
  import { BaseEntity } from '../../models';
2
2
  import { GetManyService } from './get-many-service.interface';
3
- interface GetManyController<Entity extends BaseEntity> {
4
- getMany(query?: object): Promise<Entity[]>;
3
+ interface GetManyController<Entity extends BaseEntity, Query = any, Response = any> {
4
+ getMany(query?: Query): Promise<(Entity | Response)[]>;
5
5
  }
6
6
  type GetManyControllerConstructor<Entity extends BaseEntity> = new (service: GetManyService<Entity>) => GetManyController<Entity>;
7
7
  export type { GetManyController, GetManyControllerConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetManyControllerConstructor } from './get-many-controller.interface';
5
- declare function GetManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetManyControllerConstructor<Entity>;
5
+ declare function GetManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetManyControllerConstructor<Entity>;
6
6
  export { GetManyControllerMixin };
@@ -18,16 +18,24 @@ const builders_1 = require("../../builders");
18
18
  const dtos_1 = require("../../dtos");
19
19
  const helpers_1 = require("../../helpers");
20
20
  const mixins_1 = require("../../mixins");
21
- function GetManyControllerMixin(entity, controllerOptions, routeConfig, version) {
22
- const { routeType, displayedName, description, isPublic, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
23
- class RouteQuery extends (routeConfig.dTOs?.query ?? dtos_1.EntityQuery) {
21
+ function GetManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
22
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
23
+ class GetManyQuery extends (dTOs?.query ?? dtos_1.EntityQuery) {
24
24
  }
25
- Object.defineProperty(RouteQuery, 'name', {
26
- value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Query`,
25
+ Object.defineProperty(GetManyQuery, 'name', {
26
+ value: `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Query`,
27
+ writable: false,
28
+ });
29
+ class GetManyPresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
30
+ }
31
+ Object.defineProperty(GetManyPresenter, 'name', {
32
+ value: dTOs?.presenter
33
+ ? `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
34
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
27
35
  writable: false,
28
36
  });
29
37
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
30
- presenter: RoutePresenter,
38
+ presenter: GetManyPresenter,
31
39
  });
32
40
  class GetManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
33
41
  }
@@ -41,7 +49,9 @@ function GetManyControllerMixin(entity, controllerOptions, routeConfig, version)
41
49
  this.entity = entity;
42
50
  }
43
51
  async getMany(query) {
44
- return this.service.getMany(query);
52
+ const list = await this.service.getMany(query);
53
+ const fromEntities = GetManyPresenter.fromEntities;
54
+ return fromEntities ? fromEntities(list) : list;
45
55
  }
46
56
  }
47
57
  __decorate([
@@ -49,7 +59,7 @@ function GetManyControllerMixin(entity, controllerOptions, routeConfig, version)
49
59
  (0, common_1.UseGuards)(GetManyPoliciesGuard),
50
60
  __param(0, (0, common_1.Query)()),
51
61
  __metadata("design:type", Function),
52
- __metadata("design:paramtypes", [RouteQuery]),
62
+ __metadata("design:paramtypes", [GetManyQuery]),
53
63
  __metadata("design:returntype", Promise)
54
64
  ], BaseGetManyController.prototype, "getMany", null);
55
65
  Object.defineProperty(BaseGetManyController, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"get-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,2CAKuB;AAEvB,yCAAwD;AAKxD,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,UAAW,SAAQ,CACvB,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,kBAAW,CACvC;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE;QACxC,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,OAAO;QACtE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,SAAS,EAAE,cAAc;KAC1B,CACF,CAAC;IAEF,MAAM,oBAAqB,SAAQ,IAAA,iCAAwB,EACzD,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,eAAe;QAC9E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,qBAAqB;QAGzB,YAA+B,OAA+B;YAA/B,YAAO,GAAP,OAAO,CAAwB;YAF3C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,OAAO,CAAU,KAAiB;YACtC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;KACF;IAHO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,oBAAoB,CAAC;QACjB,WAAA,IAAA,cAAK,GAAE,CAAA;;yCAAQ,UAAU;;wDAEvC;IAGH,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;QACnD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC5E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEQ,wDAAsB"}
1
+ {"version":3,"file":"get-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,2CAAmG;AAEnG,yCAA8E;AAK9E,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,GACjB,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,CACZ,CAAC;IAEF,MAAM,YAAa,SAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,kBAAW,CAAC;KAAG;IAE1D,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;QAC1C,KAAK,EAAE,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,OAAO;QACjE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,gBAAiB,SAAQ,CAC7B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;QAC9C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YAChE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;QAC3D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,SAAS,EAAE,gBAAgB;KAC5B,CACF,CAAC;IAEF,MAAM,oBAAqB,SAAQ,IAAA,iCAAwB,EACzD,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,eAAe;QAC9E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,qBAAqB;QAGzB,YAA+B,OAA+B;YAA/B,YAAO,GAAP,OAAO,CAAwB;YAF3C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,OAAO,CAAU,KAAmB;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE/C,MAAM,YAAY,GAChB,gBACD,CAAC,YAAY,CAAC;YAEf,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,oBAAoB,CAAC;QACjB,WAAA,IAAA,cAAK,GAAE,CAAA;;yCAAQ,YAAY;;wDAQzC;IAGH,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;QACnD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC5E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEQ,wDAAsB"}
@@ -2,8 +2,8 @@ import { JwtService } from '@nestjs/jwt';
2
2
  import { ExtendedSocket, GatewayResponse } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetManyService } from './get-many-service.interface';
5
- interface GetManyGateway<Entity extends BaseEntity> {
6
- getMany(socket: ExtendedSocket, body?: object): GatewayResponse<Entity[]>;
5
+ interface GetManyGateway<Entity extends BaseEntity, Response = any> {
6
+ getMany(socket: ExtendedSocket, body?: object): GatewayResponse<(Entity | Response)[]>;
7
7
  }
8
8
  type GetManyGatewayConstructor<Entity extends BaseEntity> = new (service: GetManyService<Entity>, jwtService: JwtService) => GetManyGateway<Entity>;
9
9
  export type { GetManyGateway, GetManyGatewayConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetManyGatewayConstructor } from './get-many-gateway.interface';
5
- declare function GetManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetManyGatewayConstructor<Entity>;
5
+ declare function GetManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetManyGatewayConstructor<Entity>;
6
6
  export { GetManyGatewayMixin };
@@ -15,16 +15,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.GetManyGatewayMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const websockets_1 = require("@nestjs/websockets");
18
- const lodash_1 = require("lodash");
19
18
  const dtos_1 = require("../../dtos");
20
19
  const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
21
20
  const gateways_1 = require("../../gateways");
22
21
  const helpers_1 = require("../../helpers");
23
- function GetManyGatewayMixin(entity, controllerOptions, routeConfig, version) {
24
- const { routeType, displayedName, isPublic, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
25
- class RouteQuery extends (routeConfig.dTOs?.query ?? dtos_1.EntityQuery) {
22
+ const mixins_1 = require("../../mixins");
23
+ function GetManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
24
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
25
+ class GetManyData extends (dTOs?.query ?? dtos_1.EntityQuery) {
26
26
  }
27
- const event = routeConfig.eventName ?? (0, lodash_1.kebabCase)(`${routeType}/${displayedName}`);
27
+ Object.defineProperty(GetManyData, 'name', {
28
+ value: `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
29
+ writable: false,
30
+ });
31
+ class GetManyResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
32
+ }
33
+ Object.defineProperty(GetManyResponse, 'name', {
34
+ value: dTOs?.presenter
35
+ ? `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
36
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
37
+ writable: false,
38
+ });
28
39
  class BaseGetManyGateway extends gateways_1.BaseGateway {
29
40
  constructor(service, jwtService) {
30
41
  super(jwtService);
@@ -34,9 +45,11 @@ function GetManyGatewayMixin(entity, controllerOptions, routeConfig, version) {
34
45
  }
35
46
  async getMany(socket, body) {
36
47
  this.addUserToSocket(socket, isPublic);
48
+ const list = await this.service.getMany(body);
49
+ const fromEntities = GetManyResponse.fromEntities;
37
50
  return {
38
51
  event,
39
- data: await this.service.getMany(body),
52
+ data: fromEntities ? fromEntities(list) : list,
40
53
  };
41
54
  }
42
55
  }
@@ -46,7 +59,7 @@ function GetManyGatewayMixin(entity, controllerOptions, routeConfig, version) {
46
59
  __param(0, (0, websockets_1.ConnectedSocket)()),
47
60
  __param(1, (0, websockets_1.MessageBody)()),
48
61
  __metadata("design:type", Function),
49
- __metadata("design:paramtypes", [Object, RouteQuery]),
62
+ __metadata("design:paramtypes", [Object, GetManyData]),
50
63
  __metadata("design:returntype", Promise)
51
64
  ], BaseGetManyGateway.prototype, "getMany", null);
52
65
  Object.defineProperty(BaseGetManyGateway, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"get-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAoF;AACpF,mCAAmC;AACnC,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,mBAAmB,CAC1B,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,GACT,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,UAAW,SAAQ,CACvB,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,kBAAW,CACvC;KAAG;IAEJ,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAElF,MAAM,kBAAmB,SAAQ,sBAAmB;QAGlD,YACqB,OAA+B,EAC/B,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAAwB;YAC/B,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAGK,AAAN,KAAK,CAAC,OAAO,CACQ,MAA8B,EAClC,IAAgB;YAE/B,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;aACvC,CAAC;QACJ,CAAC;KACF;IAXO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,UAAU;;qDAQhC;IAGH,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEQ,kDAAmB"}
1
+ {"version":3,"file":"get-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAoF;AACpF,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAoD;AAKpD,SAAS,mBAAmB,CAC1B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,MAAM,WAAY,SAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,kBAAW,CAAC;KAAG;IAEzD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE;QACzC,KAAK,EAAE,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,MAAM;QAChE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,eAAgB,SAAQ,CAC5B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE;QAC7C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YAC/D,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,kBAAmB,SAAQ,sBAAmB;QAGlD,YACqB,OAA+B,EAC/B,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAAwB;YAC/B,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAGK,AAAN,KAAK,CAAC,OAAO,CACQ,MAA8B,EAClC,IAAiB;YAEhC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE9C,MAAM,YAAY,GAChB,eACD,CAAC,YAAY,CAAC;YAEf,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;aAChE,CAAC;QACJ,CAAC;KACF;IAjBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,WAAW;;qDAcjC;IAGH,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEQ,kDAAmB"}
@@ -1,7 +1,7 @@
1
1
  import { BaseEntity } from '../../models';
2
2
  import { GetOneService } from './get-one-service.interface';
3
- interface GetOneController<Entity extends BaseEntity> {
4
- getOne(id: string): Promise<Entity>;
3
+ interface GetOneController<Entity extends BaseEntity, Response = any> {
4
+ getOne(id: string): Promise<Entity | Response>;
5
5
  }
6
6
  type GetOneControllerConstructor<Entity extends BaseEntity> = new (service: GetOneService<Entity>) => GetOneController<Entity>;
7
7
  export type { GetOneController, GetOneControllerConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetOneControllerConstructor } from './get-one-controller.interface';
5
- declare function GetOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetOneControllerConstructor<Entity>;
5
+ declare function GetOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetOneControllerConstructor<Entity>;
6
6
  export { GetOneControllerMixin };
@@ -18,11 +18,19 @@ const builders_1 = require("../../builders");
18
18
  const dtos_1 = require("../../dtos");
19
19
  const helpers_1 = require("../../helpers");
20
20
  const mixins_1 = require("../../mixins");
21
- function GetOneControllerMixin(entity, controllerOptions, routeConfig, version) {
22
- const { routeType, displayedName, description, isPublic, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
21
+ function GetOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
22
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
23
+ class GetOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
24
+ }
25
+ Object.defineProperty(GetOnePresenter, 'name', {
26
+ value: dTOs?.presenter
27
+ ? `GetOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
28
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
29
+ writable: false,
30
+ });
23
31
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
24
32
  param: dtos_1.EntityParam,
25
- presenter: RoutePresenter,
33
+ presenter: GetOnePresenter,
26
34
  });
27
35
  class GetOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
28
36
  }
@@ -32,7 +40,9 @@ function GetOneControllerMixin(entity, controllerOptions, routeConfig, version)
32
40
  this.entity = entity;
33
41
  }
34
42
  async getOne(id) {
35
- return this.service.getOne(id);
43
+ const entity = await this.service.getOne(id);
44
+ const fromEntity = GetOnePresenter.fromEntity;
45
+ return fromEntity ? fromEntity(entity) : entity;
36
46
  }
37
47
  }
38
48
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"get-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,2CAA2F;AAE3F,yCAAwD;AAKxD,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,cAAc,EACd,gBAAgB,GACjB,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,KAAK,EAAE,kBAAW;QAClB,SAAS,EAAE,cAAc;KAC1B,CACF,CAAC;IAEF,MAAM,mBAAoB,SAAQ,IAAA,iCAAwB,EACxD,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,oBAAoB;QAGxB,YAA+B,OAA8B;YAA9B,YAAO,GAAP,OAAO,CAAuB;YAF1C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU;YAClC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;KACF;IAHO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,mBAAmB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;sDAExB;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
1
+ {"version":3,"file":"get-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,2CAAmG;AAEnG,yCAA8E;AAK9E,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,GACjB,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,CACZ,CAAC;IAEF,MAAM,eAAgB,SAAQ,CAC5B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE;QAC7C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,SAAS,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YAC/D,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;QAC3D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,KAAK,EAAE,kBAAW;QAClB,SAAS,EAAE,eAAe;KAC3B,CACF,CAAC;IAEF,MAAM,mBAAoB,SAAQ,IAAA,iCAAwB,EACxD,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,oBAAoB;QAGxB,YAA+B,OAA8B;YAA9B,YAAO,GAAP,OAAO,CAAuB;YAF1C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,UAAU,GACd,eACD,CAAC,UAAU,CAAC;YAEb,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAkB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,mBAAmB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;sDAQxB;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
@@ -3,8 +3,8 @@ import { EntityParam } from '../../dtos';
3
3
  import { ExtendedSocket, GatewayResponse } from '../../interfaces';
4
4
  import { BaseEntity } from '../../models';
5
5
  import { GetOneService } from './get-one-service.interface';
6
- interface GetOneGateway<Entity extends BaseEntity> {
7
- getOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<Entity | undefined>;
6
+ interface GetOneGateway<Entity extends BaseEntity, Response = any> {
7
+ getOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<Entity | Response>;
8
8
  }
9
9
  type GetOneGatewayConstructor<Entity extends BaseEntity> = new (service: GetOneService<Entity>, jwtService: JwtService) => GetOneGateway<Entity>;
10
10
  export type { GetOneGateway, GetOneGatewayConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { GetOneGatewayConstructor } from './get-one-gateway.interface';
5
- declare function GetOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetOneGatewayConstructor<Entity>;
5
+ declare function GetOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetOneGatewayConstructor<Entity>;
6
6
  export { GetOneGatewayMixin };
@@ -15,14 +15,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.GetOneGatewayMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const websockets_1 = require("@nestjs/websockets");
18
- const lodash_1 = require("lodash");
19
18
  const dtos_1 = require("../../dtos");
20
19
  const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
21
20
  const gateways_1 = require("../../gateways");
22
21
  const helpers_1 = require("../../helpers");
23
- function GetOneGatewayMixin(entity, controllerOptions, routeConfig, version) {
24
- const { routeType, displayedName, isPublic, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
25
- const event = routeConfig.eventName ?? (0, lodash_1.kebabCase)(`${routeType}/${displayedName}`);
22
+ const mixins_1 = require("../../mixins");
23
+ function GetOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
24
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
25
+ class GetOneResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
26
+ }
27
+ Object.defineProperty(GetOneResponse, 'name', {
28
+ value: dTOs?.presenter
29
+ ? `GetOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
30
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
31
+ writable: false,
32
+ });
26
33
  class BaseGetOneGateway extends gateways_1.BaseGateway {
27
34
  constructor(service, jwtService) {
28
35
  super(jwtService);
@@ -35,9 +42,11 @@ function GetOneGatewayMixin(entity, controllerOptions, routeConfig, version) {
35
42
  throw new websockets_1.WsException('Invalid request body');
36
43
  }
37
44
  this.addUserToSocket(socket, isPublic);
45
+ const entity = await this.service.getOne(body.id);
46
+ const fromEntity = GetOneResponse.fromEntity;
38
47
  return {
39
48
  event,
40
- data: await this.service.getOne(body.id),
49
+ data: fromEntity ? fromEntity(entity) : entity,
41
50
  };
42
51
  }
43
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAmC;AACnC,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,kBAAkB,CACzB,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,GACT,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;IAElF,MAAM,iBAAkB,SAAQ,sBAAmB;QAGjD,YACqB,OAA8B,EAC9B,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAAuB;YAC9B,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,MAAM,CACS,MAA8B,EAClC,IAAiB;YAEhC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACzC,CAAC;QACJ,CAAC;KACF;IAfO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,kBAAW;;mDAYjC;IAGH,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAEQ,gDAAkB"}
1
+ {"version":3,"file":"get-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAoD;AAKpD,SAAS,kBAAkB,CACzB,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,MAAM,cAAe,SAAQ,CAC3B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE;QAC5C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,SAAS,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YAC9D,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,iBAAkB,SAAQ,sBAAmB;QAGjD,YACqB,OAA8B,EAC9B,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAAuB;YAC9B,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,MAAM,CACS,MAA8B,EAClC,IAAiB;YAEhC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElD,MAAM,UAAU,GACd,cACD,CAAC,UAAU,CAAC;YAEb,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAiB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;aAC/D,CAAC;QACJ,CAAC;KACF;IArBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,kBAAW;;mDAkBjC;IAGH,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAEQ,gDAAkB"}
@@ -1,7 +1,7 @@
1
1
  import { BaseEntity } from '../../models';
2
2
  import { ReplaceOneService } from './replace-one-service.interface';
3
- interface ReplaceOneController<Entity extends BaseEntity> {
4
- replaceOne(id: string, partial: Partial<Entity>): Promise<Entity | undefined>;
3
+ interface ReplaceOneController<Entity extends BaseEntity, Body = any, Response = any> {
4
+ replaceOne(id: string, body: Body): Promise<Entity | Response>;
5
5
  }
6
6
  type ReplaceOneControllerConstructor<Entity extends BaseEntity> = new (service: ReplaceOneService<Entity>) => ReplaceOneController<Entity>;
7
7
  export type { ReplaceOneController, ReplaceOneControllerConstructor };
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
2
2
  import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { ReplaceOneControllerConstructor } from './replace-one-controller.interface';
5
- declare function ReplaceOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): ReplaceOneControllerConstructor<Entity>;
5
+ declare function ReplaceOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): ReplaceOneControllerConstructor<Entity>;
6
6
  export { ReplaceOneControllerMixin };
@@ -15,15 +15,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ReplaceOneControllerMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const builders_1 = require("../../builders");
18
+ const dtos_1 = require("../../dtos");
18
19
  const helpers_1 = require("../../helpers");
19
20
  const mixins_1 = require("../../mixins");
20
- function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, version) {
21
- var _a;
22
- const { routeType, displayedName, description, isPublic, EntityParam, RouteBody, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
21
+ function ReplaceOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
22
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
23
+ class ReplaceOneBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity)) {
24
+ }
25
+ Object.defineProperty(ReplaceOneBody, 'name', {
26
+ value: `ReplaceOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
27
+ writable: false,
28
+ });
29
+ class ReplaceOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
30
+ }
31
+ Object.defineProperty(ReplaceOnePresenter, 'name', {
32
+ value: dTOs?.presenter
33
+ ? `ReplaceOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
34
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
35
+ writable: false,
36
+ });
23
37
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
24
- param: EntityParam,
25
- body: RouteBody,
26
- presenter: RoutePresenter,
38
+ param: dtos_1.EntityParam,
39
+ body: ReplaceOneBody,
40
+ presenter: ReplaceOnePresenter,
27
41
  });
28
42
  class ReplaceOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
29
43
  }
@@ -33,7 +47,10 @@ function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, versi
33
47
  this.entity = entity;
34
48
  }
35
49
  async replaceOne(id, body) {
36
- return this.service.replaceOne(id, body);
50
+ const toEntity = ReplaceOneBody.toEntity;
51
+ const entity = await this.service.replaceOne(id, toEntity ? toEntity(body) : body);
52
+ const fromEntity = ReplaceOnePresenter.fromEntity;
53
+ return fromEntity ? fromEntity(entity) : entity;
37
54
  }
38
55
  }
39
56
  __decorate([
@@ -42,7 +59,7 @@ function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, versi
42
59
  __param(0, (0, common_1.Param)('id')),
43
60
  __param(1, (0, common_1.Body)()),
44
61
  __metadata("design:type", Function),
45
- __metadata("design:paramtypes", [String, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
62
+ __metadata("design:paramtypes", [String, ReplaceOneBody]),
46
63
  __metadata("design:returntype", Promise)
47
64
  ], BaseReplaceOneController.prototype, "replaceOne", null);
48
65
  Object.defineProperty(BaseReplaceOneController, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"replace-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/replace-one/replace-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,2CAA2F;AAE3F,yCAAwD;AAKxD,SAAS,yBAAyB,CAChC,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,WAAW,EACX,SAAS,EACT,cAAc,EACd,gBAAgB,GACjB,GAAG,IAAA,gCAAsB,EACxB,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,cAAc;KAC1B,CACF,CAAC;IAEF,MAAM,uBAAwB,SAAQ,IAAA,iCAAwB,EAC5D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,wBAAwB;QAG5B,YAA+B,OAAkC;YAAlC,YAAO,GAAP,OAAO,CAA2B;YAF9C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAKK,AAAN,KAAK,CAAC,UAAU,CAAc,EAAU,EAAU,IAAe;YAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,IAAW,CAAC,CAAC;QAClD,CAAC;KACF;IAHO;QAHL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QAEjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;QAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;qEAAO,SAAS,oBAAT,SAAS;;8DAEhE;IAGH,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE;QACtD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC/E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAEQ,8DAAyB"}
1
+ {"version":3,"file":"replace-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/replace-one/replace-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,qCAAyC;AACzC,2CAAmG;AAEnG,yCAA+F;AAK/F,SAAS,yBAAyB,CAChC,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,GACjB,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,CACZ,CAAC;IAEF,MAAM,cAAe,SAAQ,CAC3B,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,CAAC,CACtC;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE;QAC5C,KAAK,EAAE,aAAa,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,KAAK;QAClE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,mBAAoB,SAAQ,CAChC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACjD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,aAAa,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YACnE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;QAC3D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,KAAK,EAAE,kBAAW;QAClB,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,mBAAmB;KAC/B,CACF,CAAC;IAEF,MAAM,uBAAwB,SAAQ,IAAA,iCAAwB,EAC5D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,wBAAwB;QAG5B,YAA+B,OAAkC;YAAlC,YAAO,GAAP,OAAO,CAA2B;YAF9C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,UAAU,CAAc,EAAU,EAAU,IAAoB;YACpE,MAAM,QAAQ,GACZ,cACD,CAAC,QAAQ,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CAAC,CAAC;YAEtG,MAAM,UAAU,GACd,mBACD,CAAC,UAAU,CAAC;YAEb,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAsB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,CAAC;KACF;IAbO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;QAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;iDAAO,cAAc;;8DAYrE;IAGH,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE;QACtD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC/E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAEQ,8DAAyB"}