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
@@ -19,10 +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 CreateOneGatewayMixin(entity, controllerOptions, routeConfig, version) {
23
- var _a;
24
- const { routeType, displayedName, isPublic, RouteBody, } = (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 CreateOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
24
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
25
+ class CreateOneData extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity)) {
26
+ }
27
+ Object.defineProperty(CreateOneData, 'name', {
28
+ value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
29
+ writable: false,
30
+ });
31
+ class CreateOneResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
32
+ }
33
+ Object.defineProperty(CreateOneResponse, 'name', {
34
+ value: dTOs?.presenter
35
+ ? `CreateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
36
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
37
+ writable: false,
38
+ });
26
39
  class BaseCreateOneGateway extends gateways_1.BaseGateway {
27
40
  constructor(service, jwtService) {
28
41
  super(jwtService);
@@ -35,10 +48,12 @@ function CreateOneGatewayMixin(entity, controllerOptions, routeConfig, version)
35
48
  throw new websockets_1.WsException('Invalid request body');
36
49
  }
37
50
  this.addUserToSocket(socket, isPublic);
38
- const data = await this.service.createOne(body);
51
+ const toEntity = CreateOneData.toEntity;
52
+ const entity = await this.service.createOne(toEntity ? toEntity(body) : body);
53
+ const fromEntity = CreateOneResponse.fromEntity;
39
54
  return {
40
55
  event,
41
- data,
56
+ data: fromEntity ? fromEntity(entity) : entity,
42
57
  };
43
58
  }
44
59
  }
@@ -48,7 +63,7 @@ function CreateOneGatewayMixin(entity, controllerOptions, routeConfig, version)
48
63
  __param(0, (0, websockets_1.ConnectedSocket)()),
49
64
  __param(1, (0, websockets_1.MessageBody)()),
50
65
  __metadata("design:type", Function),
51
- __metadata("design:paramtypes", [Object, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
66
+ __metadata("design:paramtypes", [Object, CreateOneData]),
52
67
  __metadata("design:returntype", Promise)
53
68
  ], BaseCreateOneGateway.prototype, "createOne", null);
54
69
  Object.defineProperty(BaseCreateOneGateway, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"create-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAA4C;AAC5C,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,SAAS,GACV,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,oBAAqB,SAAQ,sBAAmB;QAGpD,YACqB,OAAiC,EACjC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA0B;YACjC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CACM,MAA8B,EAElC,IAAe;YAE9B,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEhD,OAAO;gBACL,KAAK;gBACL,IAAI;aACL,CAAC;QACJ,CAAC;KACF;IAlBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QAEjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;qEAAO,SAAS,oBAAT,SAAS;;yDAc/B;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
1
+ {"version":3,"file":"create-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAiC;AACjC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAqE;AAKrE,SAAS,qBAAqB,CAC5B,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,aAAc,SAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;KAAG;IAEtE,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,MAAM;QACrE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,iBAAkB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;KAAG;IAEpF,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,YAAY,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACjE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,oBAAqB,SAAQ,sBAAmB;QAGpD,YACqB,OAAiC,EACjC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA0B;YACjC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CACM,MAA8B,EAClC,IAAmB;YAElC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,QAAQ,GACZ,aACD,CAAC,QAAQ,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CAAC,CAAC;YAEjG,MAAM,UAAU,GACd,iBACD,CAAC,UAAU,CAAC;YAEb,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAoB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;aAClE,CAAC;QACJ,CAAC;KACF;IAzBO;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,aAAa;;yDAsBnC;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseDeleteManyService = void 0;
4
- const builder_pattern_1 = require("builder-pattern");
4
+ const class_transformer_1 = require("class-transformer");
5
5
  const dtos_1 = require("../../dtos");
6
6
  const services_1 = require("../../services");
7
7
  class BaseDeleteManyService extends services_1.BaseService {
@@ -24,10 +24,10 @@ class BaseDeleteManyService extends services_1.BaseService {
24
24
  else {
25
25
  op = await this.model.deleteMany({ _id: { $in: ids } }).exec();
26
26
  }
27
- return (0, builder_pattern_1.Builder)(dtos_1.DeletePresenter).deletedCount(op.deletedCount).build();
27
+ return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: op.deletedCount });
28
28
  }
29
29
  catch (error) {
30
- return (0, builder_pattern_1.Builder)(dtos_1.DeletePresenter).deletedCount(0).build();
30
+ return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: 0 });
31
31
  }
32
32
  }
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-delete-many.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/base-delete-many.service.ts"],"names":[],"mappings":";;;AAAA,qDAA0C;AAE1C,qCAA6C;AAG7C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAG3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,IAAI,CAAC;YACH,IAAI,EAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;qBAC/B,UAAU,CACT;oBACE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;oBACjB,SAAS,EAAE,KAAK;iBACjB,EACD,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrD;qBACA,IAAI,EAAE,CAAC;gBAER,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,CAAC;YAED,OAAO,IAAA,yBAAO,EAAC,sBAAe,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAA,yBAAO,EAAC,sBAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;CACF;AAjCD,sDAiCC"}
1
+ {"version":3,"file":"base-delete-many.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/base-delete-many.service.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,qCAA6C;AAG7C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAG3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,IAAI,CAAC;YACH,IAAI,EAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;qBAC/B,UAAU,CACT;oBACE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;oBACjB,SAAS,EAAE,KAAK;iBACjB,EACD,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrD;qBACA,IAAI,EAAE,CAAC;gBAER,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,CAAC;YAED,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AAjCD,sDAiCC"}
@@ -1,8 +1,9 @@
1
- import { ManyEntityQuery, DeletePresenter } from '../../dtos';
1
+ import { ManyEntityQuery } from '../../dtos';
2
+ import { DeleteResult } from '../../interfaces';
2
3
  import { BaseEntity } from '../../models';
3
4
  import { DeleteManyService } from './delete-many-service.interface';
4
- interface DeleteManyController<Entity extends BaseEntity> {
5
- deleteMany(query: ManyEntityQuery): Promise<DeletePresenter>;
5
+ interface DeleteManyController<_Entity extends BaseEntity, Response = any> {
6
+ deleteMany(query: ManyEntityQuery): Promise<DeleteResult | Response>;
6
7
  }
7
8
  type DeleteManyControllerConstructor<Entity extends BaseEntity> = new (service: DeleteManyService<Entity>) => DeleteManyController<Entity>;
8
9
  export type { DeleteManyController, DeleteManyControllerConstructor };
@@ -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 { DeleteManyControllerConstructor } from './delete-many-controller.interface';
5
- declare function DeleteManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyControllerConstructor<Entity>;
5
+ declare function DeleteManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyControllerConstructor<Entity>;
6
6
  export { DeleteManyControllerMixin };
@@ -14,15 +14,22 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DeleteManyControllerMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
- const builder_pattern_1 = require("builder-pattern");
18
17
  const builders_1 = require("../../builders");
19
18
  const dtos_1 = require("../../dtos");
20
19
  const helpers_1 = require("../../helpers");
21
20
  const mixins_1 = require("../../mixins");
22
- function DeleteManyControllerMixin(entity, controllerOptions, routeConfig, version) {
23
- const { routeType, displayedName, description, isPublic, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
21
+ function DeleteManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
22
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
23
+ class DeleteManyPresenter extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
24
+ }
25
+ Object.defineProperty(DeleteManyPresenter, 'name', {
26
+ value: dTOs?.presenter
27
+ ? `DeleteMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
28
+ : `DeleteResultPresenter`,
29
+ writable: false,
30
+ });
24
31
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
25
- presenter: RoutePresenter,
32
+ presenter: DeleteManyPresenter,
26
33
  });
27
34
  class DeleteManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
28
35
  }
@@ -32,8 +39,9 @@ function DeleteManyControllerMixin(entity, controllerOptions, routeConfig, versi
32
39
  this.entity = entity;
33
40
  }
34
41
  async deleteMany({ ids }) {
35
- const result = await this.service.deleteMany(ids);
36
- return (0, builder_pattern_1.Builder)(dtos_1.DeletePresenter, result).build();
42
+ const deleteResult = await this.service.deleteMany(ids);
43
+ const fromDeleteResult = DeleteManyPresenter.fromDeleteResult;
44
+ return fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult;
37
45
  }
38
46
  }
39
47
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"delete-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,qDAA0C;AAC1C,6CAAwD;AACxD,qCAA8D;AAC9D,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,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,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;QAIK,AAAN,KAAK,CAAC,UAAU,CAAU,EAAE,GAAG,EAAmB;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAClD,OAAO,IAAA,yBAAO,EAAC,sBAAe,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC;KACF;IAJO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QACjB,WAAA,IAAA,cAAK,GAAE,CAAA;;yCAAU,sBAAe;;8DAGjD;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":"delete-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAA8D;AAC9D,2CAAmG;AAEnG,yCAAwD;AAKxD,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,mBAAoB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,sBAAe,CAAC;KAAG;IAEzE,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,uBAAuB;QAC3B,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,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,CAAU,EAAE,GAAG,EAAmB;YAChD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAExD,MAAM,gBAAgB,GACpB,mBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAsB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/F,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QACjB,WAAA,IAAA,cAAK,GAAE,CAAA;;yCAAU,sBAAe;;8DAQjD;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,10 +1,10 @@
1
1
  import { JwtService } from '@nestjs/jwt';
2
- import { ManyEntityQuery, DeletePresenter } from '../../dtos';
3
- import { ExtendedSocket, GatewayResponse } from '../../interfaces';
2
+ import { ManyEntityQuery } from '../../dtos';
3
+ import { DeleteResult, ExtendedSocket, GatewayResponse } from '../../interfaces';
4
4
  import { BaseEntity } from '../../models';
5
5
  import { DeleteManyService } from './delete-many-service.interface';
6
- interface DeleteManyGateway<Entity extends BaseEntity> {
7
- deleteMany(socket: ExtendedSocket, body: ManyEntityQuery): GatewayResponse<DeletePresenter>;
6
+ interface DeleteManyGateway<_Entity extends BaseEntity, Response = any> {
7
+ deleteMany(socket: ExtendedSocket, body: ManyEntityQuery): GatewayResponse<(DeleteResult | Response)>;
8
8
  }
9
9
  type DeleteManyGatewayConstructor<Entity extends BaseEntity> = new (service: DeleteManyService<Entity>, jwtService: JwtService) => DeleteManyGateway<Entity>;
10
10
  export type { DeleteManyGateway, DeleteManyGatewayConstructor };
@@ -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 { DeleteManyGatewayConstructor } from './delete-many-gateway.interface';
5
- declare function DeleteManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyGatewayConstructor<Entity>;
5
+ declare function DeleteManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyGatewayConstructor<Entity>;
6
6
  export { DeleteManyGatewayMixin };
@@ -15,14 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DeleteManyGatewayMixin = 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 DeleteManyGatewayMixin(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
+ function DeleteManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
23
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
24
+ class DeleteManyResponse extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
25
+ }
26
+ Object.defineProperty(DeleteManyResponse, 'name', {
27
+ value: dTOs?.presenter
28
+ ? `DeleteMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
29
+ : `DeleteResultResponse`,
30
+ writable: false,
31
+ });
26
32
  class BaseDeleteManyGateway extends gateways_1.BaseGateway {
27
33
  constructor(service, jwtService) {
28
34
  super(jwtService);
@@ -35,9 +41,11 @@ function DeleteManyGatewayMixin(entity, controllerOptions, routeConfig, version)
35
41
  throw new websockets_1.WsException('Invalid request body');
36
42
  }
37
43
  this.addUserToSocket(socket, isPublic);
44
+ const deleteResult = await this.service.deleteMany(body.ids);
45
+ const fromDeleteResult = DeleteManyResponse.fromDeleteResult;
38
46
  return {
39
47
  event,
40
- data: await this.service.deleteMany(body.ids),
48
+ data: fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult,
41
49
  };
42
50
  }
43
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delete-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAmC;AACnC,qCAA6C;AAC7C,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,sBAAsB,CAC7B,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,qBAAsB,SAAQ,sBAAmB;QAGrD,YACqB,OAAkC,EAClC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA2B;YAClC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,UAAU,CACK,MAA8B,EAClC,IAAqB;YAEpC,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,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;aAC9C,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,sBAAe;;2DAYrC;IAGH,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;QACnD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEQ,wDAAsB"}
1
+ {"version":3,"file":"delete-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,qCAA8D;AAC9D,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAM5E,SAAS,sBAAsB,CAC7B,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,kBAAmB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,sBAAe,CAAC;KAAG;IAExE,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,aAAa,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YAClE,CAAC,CAAC,sBAAsB;QAC1B,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,qBAAsB,SAAQ,sBAAmB;QAGrD,YACqB,OAAkC,EAClC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA2B;YAClC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,UAAU,CACK,MAA8B,EAClC,IAAqB;YAEpC,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,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE7D,MAAM,gBAAgB,GACpB,kBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAqB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;aAC3F,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,sBAAe;;2DAkBrC;IAGH,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;QACnD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEQ,wDAAsB"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseDeleteOneService = void 0;
4
- const builder_pattern_1 = require("builder-pattern");
4
+ const class_transformer_1 = require("class-transformer");
5
5
  const dtos_1 = require("../../dtos");
6
6
  const services_1 = require("../../services");
7
7
  class BaseDeleteOneService extends services_1.BaseService {
@@ -24,10 +24,10 @@ class BaseDeleteOneService extends services_1.BaseService {
24
24
  else {
25
25
  op = await this.model.deleteOne({ _id: id }).exec();
26
26
  }
27
- return (0, builder_pattern_1.Builder)(dtos_1.DeletePresenter).deletedCount(op.deletedCount).build();
27
+ return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: op.deletedCount });
28
28
  }
29
29
  catch (error) {
30
- return (0, builder_pattern_1.Builder)(dtos_1.DeletePresenter).deletedCount(0).build();
30
+ return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: 0 });
31
31
  }
32
32
  }
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-delete-one.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/base-delete-one.service.ts"],"names":[],"mappings":";;;AAAA,qDAA0C;AAE1C,qCAA6C;AAG7C,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAG3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,IAAI,CAAC;YACH,IAAI,EAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;qBAC/B,SAAS,CACR;oBACE,GAAG,EAAE,EAAE;oBACP,SAAS,EAAE,KAAK;iBACjB,EACD,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrD;qBACA,IAAI,EAAE,CAAC;gBAER,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,CAAC;YAED,OAAO,IAAA,yBAAO,EAAC,sBAAe,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAA,yBAAO,EAAC,sBAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;CACF;AAjCD,oDAiCC"}
1
+ {"version":3,"file":"base-delete-one.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/base-delete-one.service.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,qCAA6C;AAG7C,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAG3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,IAAI,CAAC;YACH,IAAI,EAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;qBAC/B,SAAS,CACR;oBACE,GAAG,EAAE,EAAE;oBACP,SAAS,EAAE,KAAK;iBACjB,EACD,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrD;qBACA,IAAI,EAAE,CAAC;gBAER,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,CAAC;YAED,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AAjCD,oDAiCC"}
@@ -1,8 +1,8 @@
1
- import { DeletePresenter } from '../../dtos';
1
+ import { DeleteResult } from '../../interfaces';
2
2
  import { BaseEntity } from '../../models';
3
3
  import { DeleteOneService } from './delete-one-service.interface';
4
- interface DeleteOneController<Entity extends BaseEntity> {
5
- deleteOne(id: string): Promise<DeletePresenter>;
4
+ interface DeleteOneController<_Entity extends BaseEntity, Response = any> {
5
+ deleteOne(id: string): Promise<DeleteResult | Response>;
6
6
  }
7
7
  type DeleteOneControllerConstructor<Entity extends BaseEntity> = new (service: DeleteOneService<Entity>) => DeleteOneController<Entity>;
8
8
  export type { DeleteOneController, DeleteOneControllerConstructor };
@@ -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 { DeleteOneControllerConstructor } from './delete-one-controller.interface';
5
- declare function DeleteOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneControllerConstructor<Entity>;
5
+ declare function DeleteOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneControllerConstructor<Entity>;
6
6
  export { DeleteOneControllerMixin };
@@ -14,16 +14,23 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DeleteOneControllerMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
- const builder_pattern_1 = require("builder-pattern");
18
17
  const builders_1 = require("../../builders");
19
18
  const dtos_1 = require("../../dtos");
20
19
  const helpers_1 = require("../../helpers");
21
20
  const mixins_1 = require("../../mixins");
22
- function DeleteOneControllerMixin(entity, controllerOptions, routeConfig, version) {
23
- const { routeType, displayedName, description, isPublic, EntityParam, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
21
+ function DeleteOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
22
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
23
+ class DeleteOnePresenter extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
24
+ }
25
+ Object.defineProperty(DeleteOnePresenter, 'name', {
26
+ value: dTOs?.presenter
27
+ ? `DeleteOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
28
+ : `DeleteResultPresenter`,
29
+ writable: false,
30
+ });
24
31
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
25
- param: EntityParam,
26
- presenter: RoutePresenter,
32
+ param: dtos_1.EntityParam,
33
+ presenter: DeleteOnePresenter,
27
34
  });
28
35
  class DeleteOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
29
36
  }
@@ -33,8 +40,9 @@ function DeleteOneControllerMixin(entity, controllerOptions, routeConfig, versio
33
40
  this.entity = entity;
34
41
  }
35
42
  async deleteOne(id) {
36
- const result = await this.service.deleteOne(id);
37
- return (0, builder_pattern_1.Builder)(dtos_1.DeletePresenter, result).build();
43
+ const deleteResult = await this.service.deleteOne(id);
44
+ const fromDeleteResult = DeleteOnePresenter.fromDeleteResult;
45
+ return fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult;
38
46
  }
39
47
  }
40
48
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"delete-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,qDAA0C;AAC1C,6CAAwD;AACxD,qCAA6C;AAC7C,2CAA2F;AAE3F,yCAAwD;AAKxD,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,iBAAsD,EACtD,WAA0C,EAC1C,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,WAAW,EACX,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,SAAS,EAAE,cAAc;KAC1B,CACF,CAAC;IAEF,MAAM,sBAAuB,SAAQ,IAAA,iCAAwB,EAC3D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,uBAAuB;QAG3B,YAA+B,OAAiC;YAAjC,YAAO,GAAP,OAAO,CAA0B;YAF7C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CAAc,EAAU;YACrC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAChD,OAAO,IAAA,yBAAO,EAAC,sBAAe,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,CAAC;KACF;IAJO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,sBAAsB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;4DAG3B;IAGH,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACrD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC9E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAEQ,4DAAwB"}
1
+ {"version":3,"file":"delete-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAA0D;AAC1D,2CAAmG;AAEnG,yCAAwD;AAKxD,SAAS,wBAAwB,CAC/B,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,kBAAmB,SAAQ,CAC/B,IAAI,EAAE,SAAS,IAAI,sBAAe,CACnC;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,YAAY,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YAClE,CAAC,CAAC,uBAAuB;QAC3B,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,kBAAkB;KAC9B,CACF,CAAC;IAEF,MAAM,sBAAuB,SAAQ,IAAA,iCAAwB,EAC3D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,uBAAuB;QAG3B,YAA+B,OAAiC;YAAjC,YAAO,GAAP,OAAO,CAA0B;YAF7C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CAAc,EAAU;YACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEtD,MAAM,gBAAgB,GACpB,kBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAqB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9F,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,sBAAsB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;4DAQ3B;IAGH,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACrD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC9E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAEQ,4DAAwB"}
@@ -1,10 +1,10 @@
1
1
  import { JwtService } from '@nestjs/jwt';
2
- import { DeletePresenter, EntityParam } from '../../dtos';
3
- import { ExtendedSocket, GatewayResponse } from '../../interfaces';
2
+ import { EntityParam } from '../../dtos';
3
+ import { DeleteResult, ExtendedSocket, GatewayResponse } from '../../interfaces';
4
4
  import { BaseEntity } from '../../models';
5
5
  import { DeleteOneService } from './delete-one-service.interface';
6
- interface DeleteOneGateway<Entity extends BaseEntity> {
7
- deleteOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<DeletePresenter>;
6
+ interface DeleteOneGateway<_Entity extends BaseEntity, Response = any> {
7
+ deleteOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<DeleteResult | Response>;
8
8
  }
9
9
  type DeleteOneGatewayConstructor<Entity extends BaseEntity> = new (service: DeleteOneService<Entity>, jwtService: JwtService) => DeleteOneGateway<Entity>;
10
10
  export type { DeleteOneGateway, DeleteOneGatewayConstructor };
@@ -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 { DeleteOneGatewayConstructor } from './delete-one-gateway.interface';
5
- declare function DeleteOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneGatewayConstructor<Entity>;
5
+ declare function DeleteOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneGatewayConstructor<Entity>;
6
6
  export { DeleteOneGatewayMixin };
@@ -15,14 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DeleteOneGatewayMixin = 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 DeleteOneGatewayMixin(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
+ function DeleteOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
23
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
24
+ class DeleteOneResponse extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
25
+ }
26
+ Object.defineProperty(DeleteOneResponse, 'name', {
27
+ value: dTOs?.presenter
28
+ ? `DeleteOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
29
+ : `DeleteResultResponse`,
30
+ writable: false,
31
+ });
26
32
  class BaseDeleteOneGateway extends gateways_1.BaseGateway {
27
33
  constructor(service, jwtService) {
28
34
  super(jwtService);
@@ -35,9 +41,11 @@ function DeleteOneGatewayMixin(entity, controllerOptions, routeConfig, version)
35
41
  throw new websockets_1.WsException('Invalid request body');
36
42
  }
37
43
  this.addUserToSocket(socket, isPublic);
44
+ const deleteResult = await this.service.deleteOne(body.id);
45
+ const fromDeleteResult = DeleteOneResponse.fromDeleteResult;
38
46
  return {
39
47
  event,
40
- data: await this.service.deleteOne(body.id),
48
+ data: fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult,
41
49
  };
42
50
  }
43
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delete-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAmC;AACnC,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAMpE,SAAS,qBAAqB,CAC5B,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,oBAAqB,SAAQ,sBAAmB;QAGpD,YACqB,OAAiC,EACjC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA0B;YACjC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CACM,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,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;aAC5C,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;;yDAYjC;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
1
+ {"version":3,"file":"delete-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,qCAA0D;AAC1D,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAM5E,SAAS,qBAAqB,CAC5B,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,iBAAkB,SAAQ,CAC9B,IAAI,EAAE,SAAS,IAAI,sBAAe,CACnC;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,YAAY,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACjE,CAAC,CAAC,sBAAsB;QAC1B,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,oBAAqB,SAAQ,sBAAmB;QAGpD,YACqB,OAAiC,EACjC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA0B;YACjC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CACM,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,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3D,MAAM,gBAAgB,GACpB,iBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAoB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;aAC1F,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;;yDAkBjC;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
@@ -1,7 +1,7 @@
1
1
  import { BaseEntity } from '../../models';
2
2
  import { DuplicateManyService } from './duplicate-many-service.interface';
3
- interface DuplicateManyController<Entity extends BaseEntity> {
4
- duplicateMany(ids: string[], body?: Partial<Entity>): Promise<Entity[]>;
3
+ interface DuplicateManyController<Entity extends BaseEntity, Response = any> {
4
+ duplicateMany(ids: string[], body?: Partial<Entity>): Promise<(Entity | Response)[]>;
5
5
  }
6
6
  type DuplicateManyControllerConstructor<Entity extends BaseEntity> = new (service: DuplicateManyService<Entity>) => DuplicateManyController<Entity>;
7
7
  export type { DuplicateManyController, DuplicateManyControllerConstructor };
@@ -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 { DuplicateManyControllerConstructor } from './duplicate-many-controller.interface';
5
- declare function DuplicateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyControllerConstructor<Entity>;
5
+ declare function DuplicateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyControllerConstructor<Entity>;
6
6
  export { DuplicateManyControllerMixin };
@@ -14,15 +14,29 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DuplicateManyControllerMixin = 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 helpers_1 = require("../../helpers");
19
20
  const mixins_1 = require("../../mixins");
20
- function DuplicateManyControllerMixin(entity, controllerOptions, routeConfig, version) {
21
- var _a;
22
- const { routeType, displayedName, description, isPublic, RouteBody, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
21
+ function DuplicateManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
22
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
23
+ class DuplicateManyBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
24
+ }
25
+ Object.defineProperty(DuplicateManyBody, 'name', {
26
+ value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
27
+ writable: false,
28
+ });
29
+ class DuplicateManyPresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
30
+ }
31
+ Object.defineProperty(DuplicateManyPresenter, 'name', {
32
+ value: dTOs?.presenter
33
+ ? `${routeType}${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
- body: RouteBody,
25
- presenter: RoutePresenter,
38
+ body: DuplicateManyBody,
39
+ presenter: DuplicateManyPresenter,
26
40
  });
27
41
  class DuplicateManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
28
42
  }
@@ -32,7 +46,10 @@ function DuplicateManyControllerMixin(entity, controllerOptions, routeConfig, ve
32
46
  this.entity = entity;
33
47
  }
34
48
  async duplicateMany(ids, body) {
35
- return this.service.duplicateMany(ids, body);
49
+ const toEntity = DuplicateManyBody.toEntity;
50
+ const list = await this.service.duplicateMany(ids, !(0, lodash_1.isEmpty)(body) && toEntity ? toEntity(body) : body);
51
+ const fromEntities = DuplicateManyPresenter.fromEntities;
52
+ return fromEntities ? fromEntities(list) : list;
36
53
  }
37
54
  }
38
55
  __decorate([
@@ -41,7 +58,7 @@ function DuplicateManyControllerMixin(entity, controllerOptions, routeConfig, ve
41
58
  __param(0, (0, common_1.Query)('ids')),
42
59
  __param(1, (0, common_1.Body)()),
43
60
  __metadata("design:type", Function),
44
- __metadata("design:paramtypes", [Array, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
61
+ __metadata("design:paramtypes", [Array, DuplicateManyBody]),
45
62
  __metadata("design:returntype", Promise)
46
63
  ], BaseDuplicateManyController.prototype, "duplicateMany", null);
47
64
  Object.defineProperty(BaseDuplicateManyController, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"duplicate-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,2CAA2F;AAE3F,yCAAwD;AAKxD,SAAS,4BAA4B,CACnC,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,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,cAAc;KAC1B,CACF,CAAC;IAEF,MAAM,0BAA2B,SAAQ,IAAA,iCAAwB,EAC/D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,2BAA2B;QAG/B,YAA+B,OAAqC;YAArC,YAAO,GAAP,OAAO,CAA8B;YAFjD,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAKK,AAAN,KAAK,CAAC,aAAa,CAAe,GAAa,EAAU,IAAgB;YACvE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,IAAW,CAAC,CAAC;QACtD,CAAC;KACF;IAHO;QAHL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,0BAA0B,CAAC;QAEjB,WAAA,IAAA,cAAK,EAAC,KAAK,CAAC,CAAA;QAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;oEAAQ,SAAS,oBAAT,SAAS;;oEAExE;IAGH,MAAM,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,EAAE;QACzD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAClF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAEQ,oEAA4B"}
1
+ {"version":3,"file":"duplicate-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,mCAAiC;AACjC,6CAAwD;AACxD,2CAAmG;AAEnG,yCAA+F;AAK/F,SAAS,4BAA4B,CACnC,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,iBAAkB,SAAQ,CAC9B,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAC5C;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,KAAK;QACpE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAuB,SAAQ,CACnC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE;QACpD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YACrE,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,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,sBAAsB;KAClC,CACF,CAAC;IAEF,MAAM,0BAA2B,SAAQ,IAAA,iCAAwB,EAC/D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,2BAA2B;QAG/B,YAA+B,OAAqC;YAArC,YAAO,GAAP,OAAO,CAA8B;YAFjD,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,aAAa,CAAe,GAAa,EAAU,IAAwB;YAC/E,MAAM,QAAQ,GACZ,iBACD,CAAC,QAAQ,CAAC;YAEX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC3C,GAAG,EACH,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CACtE,CAAC;YAEF,MAAM,YAAY,GAChB,sBACD,CAAC,YAAY,CAAC;YAEf,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAyB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,CAAC;KACF;IAhBO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,0BAA0B,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,KAAK,CAAC,CAAA;QAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;gDAAQ,iBAAiB;;oEAehF;IAGH,MAAM,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,EAAE;QACzD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAClF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAEQ,oEAA4B"}
@@ -3,8 +3,8 @@ import { ManyEntityQuery } from '../../dtos';
3
3
  import { ExtendedSocket, GatewayResponse } from '../../interfaces';
4
4
  import { BaseEntity } from '../../models';
5
5
  import { DuplicateManyService } from './duplicate-many-service.interface';
6
- interface DuplicateManyGateway<Entity extends BaseEntity> {
7
- duplicateMany(socket: ExtendedSocket, body: ManyEntityQuery & Partial<Entity>): GatewayResponse<Entity[]>;
6
+ interface DuplicateManyGateway<Entity extends BaseEntity, Response = any> {
7
+ duplicateMany(socket: ExtendedSocket, body: ManyEntityQuery & Partial<Entity>): GatewayResponse<(Entity | Response)[]>;
8
8
  }
9
9
  type DuplicateManyGatewayConstructor<Entity extends BaseEntity> = new (service: DuplicateManyService<Entity>, jwtService: JwtService) => DuplicateManyGateway<Entity>;
10
10
  export type { DuplicateManyGateway, DuplicateManyGatewayConstructor };
@@ -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 { DuplicateManyGatewayConstructor } from './duplicate-many-gateway.interface';
5
- declare function DuplicateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyGatewayConstructor<Entity>;
5
+ declare function DuplicateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyGatewayConstructor<Entity>;
6
6
  export { DuplicateManyGatewayMixin };
@@ -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 DuplicateManyGatewayMixin(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 DuplicateManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
24
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
25
+ class DuplicateManyData extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
26
+ }
27
+ Object.defineProperty(DuplicateManyData, 'name', {
28
+ value: `DuplicateMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
29
+ writable: false,
30
+ });
31
+ class DuplicateManyResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
32
+ }
33
+ Object.defineProperty(DuplicateManyResponse, 'name', {
34
+ value: dTOs?.presenter
35
+ ? `DuplicateMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
36
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
37
+ writable: false,
38
+ });
25
39
  class BaseDuplicateManyGateway extends gateways_1.BaseGateway {
26
40
  constructor(service, jwtService) {
27
41
  super(jwtService);
@@ -34,10 +48,13 @@ function DuplicateManyGatewayMixin(entity, controllerOptions, routeConfig, versi
34
48
  throw new websockets_1.WsException('Invalid request body');
35
49
  }
36
50
  this.addUserToSocket(socket, isPublic);
37
- const { ids, ...partialEntity } = body;
51
+ const { ids, ...data } = body;
52
+ const toEntity = DuplicateManyData.toEntity;
53
+ const list = await this.service.duplicateMany(ids, !(0, lodash_1.isEmpty)(data) && toEntity ? toEntity(data) : data);
54
+ const fromEntities = DuplicateManyResponse.fromEntities;
38
55
  return {
39
56
  event,
40
- data: await this.service.duplicateMany(ids, partialEntity),
57
+ data: fromEntities ? fromEntities(list) : list,
41
58
  };
42
59
  }
43
60
  }