mongodb-dynamic-api 2.6.0 → 2.7.1

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 +9 -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 +17 -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 +27 -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 +30 -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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  Changelog
2
2
 
3
+ ## [2.7.1](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.7.0...v2.7.1) (2024-08-30)
4
+
5
+ ## [2.7.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.6.0...v2.7.0) (2024-08-29)
6
+
7
+
8
+ ### api
9
+
10
+ * **api:** add mapping from / to entity, update related ([2af5ad3](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/2af5ad373e83b9161bf4ac8f3b4a910aa3801aef))
11
+
3
12
  ## [2.6.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.5.1...v2.6.0) (2024-08-24)
4
13
 
5
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb-dynamic-api",
3
- "version": "2.6.0",
3
+ "version": "2.7.1",
4
4
  "description": "Auto generated CRUD API for MongoDB using NestJS",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "index.js",
@@ -52,7 +52,6 @@
52
52
  "@nestjs/websockets": "^10.3.8",
53
53
  "@types/lodash": "^4.14.202",
54
54
  "bcrypt": "^5.1.1",
55
- "builder-pattern": "^2.2.0",
56
55
  "cache-manager": "^5.4.0",
57
56
  "class-transformer": "^0.5.1",
58
57
  "class-validator": "^0.14.1",
@@ -1,6 +1,6 @@
1
1
  export * from './controller-ability-predicates.helper';
2
- export * from './controller-mixin.helper';
3
2
  export * from './format.helper';
3
+ export * from './mixin-data.helper';
4
4
  export * from './route-decorators.helper';
5
5
  export * from './route-description.helper';
6
6
  export * from './schema.helper';
@@ -15,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./controller-ability-predicates.helper"), exports);
18
- __exportStar(require("./controller-mixin.helper"), exports);
19
18
  __exportStar(require("./format.helper"), exports);
19
+ __exportStar(require("./mixin-data.helper"), exports);
20
20
  __exportStar(require("./route-decorators.helper"), exports);
21
21
  __exportStar(require("./route-description.helper"), exports);
22
22
  __exportStar(require("./schema.helper"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,4DAA0C;AAC1C,kDAAgC;AAChC,4DAA0C;AAC1C,6DAA2C;AAC3C,kDAAgC;AAChC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,kDAAgC;AAChC,sDAAoC;AACpC,4DAA0C;AAC1C,6DAA2C;AAC3C,kDAAgC;AAChC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C"}
@@ -0,0 +1,12 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { AbilityPredicate, DynamicApiControllerOptions, DynamicAPIRouteConfig, RouteType } from '../interfaces';
3
+ import { BaseEntity } from '../models';
4
+ declare function getMixinData<Entity extends BaseEntity>(entity: Type<Entity>, { apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: DynamicApiControllerOptions<Entity>, { type: routeType, subPath, description, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, eventName, }: DynamicAPIRouteConfig<Entity>, isGateway?: boolean): {
5
+ routeType: RouteType;
6
+ displayedName: string;
7
+ description: string;
8
+ isPublic: boolean;
9
+ abilityPredicate: AbilityPredicate<Entity>;
10
+ event?: string;
11
+ };
12
+ export { getMixinData };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMixinData = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const controller_ability_predicates_helper_1 = require("./controller-ability-predicates.helper");
6
+ const format_helper_1 = require("./format.helper");
7
+ function getMixinData(entity, { apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, subPath, description, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, eventName, }, isGateway = false) {
8
+ const displayedName = (0, format_helper_1.getDisplayedName)(apiTag, entity.name, subPath);
9
+ let isPublic;
10
+ if (typeof isPublicRoute === 'boolean') {
11
+ isPublic = isPublicRoute;
12
+ }
13
+ else if (typeof isPublicController === 'boolean') {
14
+ isPublic = isPublicController;
15
+ }
16
+ else {
17
+ isPublic = false;
18
+ }
19
+ const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
20
+ return {
21
+ routeType,
22
+ displayedName,
23
+ description,
24
+ isPublic,
25
+ abilityPredicate,
26
+ ...(isGateway && { event: eventName ?? (0, lodash_1.kebabCase)(`${routeType}/${displayedName}`) }),
27
+ };
28
+ }
29
+ exports.getMixinData = getMixinData;
30
+ //# sourceMappingURL=mixin-data.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixin-data.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mixin-data.helper.ts"],"names":[],"mappings":";;;AACA,mCAAmC;AAQnC,iGAAqG;AACrG,mDAAmD;AAEnD,SAAS,YAAY,CACnB,MAAoB,EACpB,EACE,MAAM,EACN,QAAQ,EAAE,kBAAkB,EAC5B,iBAAiB,EAAE,2BAA2B,GACV,EACtC,EACE,IAAI,EAAE,SAAS,EACf,OAAO,EACP,WAAW,EACX,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,qBAAqB,EACvC,SAAS,GACqB,EAChC,SAAS,GAAG,KAAK;IASjB,MAAM,aAAa,GAAG,IAAA,gCAAgB,EAAC,MAAM,EAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtE,IAAI,QAAiB,CAAC;IACtB,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnD,QAAQ,GAAG,kBAAkB,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,IAAI,IAAA,kFAA2C,EAC3F,2BAA2B,EAC3B,SAAS,CACV,CAAC;IAEF,OAAO;QACL,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,gBAAgB;QAChB,GAAG,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,EAAE,CAAC;KACrF,CAAC;AACJ,CAAC;AAEQ,oCAAY"}
@@ -1,8 +1,16 @@
1
1
  import { Type } from '@nestjs/common';
2
+ import { DeleteResult } from './dynamic-api-route-response.type';
3
+ interface Mappable<Entity> {
4
+ toEntity?: <DTO = any>(body: DTO) => Partial<Entity>;
5
+ toEntities?: <DTO = any>(body: DTO) => Partial<Entity>[];
6
+ fromDeleteResult?: <Presenter = any>(result: DeleteResult) => Presenter;
7
+ fromEntity?: <Presenter = any>(entity: Entity) => Presenter;
8
+ fromEntities?: <Presenter = any>(entities: Entity[]) => Presenter[];
9
+ }
2
10
  type DTOsBundle = {
3
11
  query?: Type;
4
12
  param?: Type;
5
13
  body?: Type;
6
14
  presenter?: Type;
7
15
  };
8
- export { DTOsBundle };
16
+ export { DTOsBundle, Mappable };
@@ -1,7 +1,7 @@
1
1
  import { Type } from '@nestjs/common';
2
2
  import { BaseEntity } from '../models';
3
3
  declare const baseEntityKeysToExclude: <Entity extends BaseEntity>() => (keyof Entity)[];
4
- declare function EntityBodyMixin<Entity extends BaseEntity>(entity: Type<Entity>, update?: boolean, additionalKeysToExclude?: (keyof Entity)[]): {
4
+ declare function EntityBodyMixin<Entity extends BaseEntity>(entity: Type<Entity>, optional?: boolean, additionalKeysToExclude?: (keyof Entity)[]): {
5
5
  new (...args: any[]): {};
6
6
  apply(this: Function, thisArg: any, argArray?: any): any;
7
7
  call(this: Function, thisArg: any, ...argArray: any[]): any;
@@ -12,14 +12,14 @@ const baseEntityKeysToExclude = () => [
12
12
  '__v',
13
13
  ];
14
14
  exports.baseEntityKeysToExclude = baseEntityKeysToExclude;
15
- function EntityBodyMixin(entity, update = false, additionalKeysToExclude) {
15
+ function EntityBodyMixin(entity, optional = false, additionalKeysToExclude) {
16
16
  const keysToExclude = [
17
17
  ...baseEntityKeysToExclude(),
18
18
  ...(additionalKeysToExclude ?? []),
19
19
  ];
20
20
  class EntityBody extends (0, swagger_1.OmitType)(entity, keysToExclude) {
21
21
  }
22
- return update ? (0, swagger_1.PartialType)(EntityBody) : EntityBody;
22
+ return optional ? (0, swagger_1.PartialType)(EntityBody) : EntityBody;
23
23
  }
24
24
  exports.EntityBodyMixin = EntityBodyMixin;
25
25
  //# sourceMappingURL=entity-body.mixin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity-body.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/entity-body.mixin.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AAGxD,MAAM,uBAAuB,GAAG,GAA8B,EAAE,CAC9D;IACE,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,KAAK;IACL,KAAK;CACc,CAAC;AAkBf,0DAAuB;AAhBhC,SAAS,eAAe,CACtB,MAAoB,EACpB,MAAM,GAAG,KAAK,EACd,uBAA0C;IAE1C,MAAM,aAAa,GAAG;QACpB,GAAG,uBAAuB,EAAU;QACpC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;KACnC,CAAC;IAGF,MAAM,UAAW,SAAQ,IAAA,kBAAQ,EAAC,MAAM,EAAE,aAAa,CAAC;KAAG;IAE3D,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,qBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACvD,CAAC;AAEiC,0CAAe"}
1
+ {"version":3,"file":"entity-body.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/entity-body.mixin.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AAGxD,MAAM,uBAAuB,GAAG,GAA8B,EAAE,CAC9D;IACE,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,KAAK;IACL,KAAK;CACc,CAAC;AAkBf,0DAAuB;AAhBhC,SAAS,eAAe,CACtB,MAAoB,EACpB,QAAQ,GAAG,KAAK,EAChB,uBAA0C;IAE1C,MAAM,aAAa,GAAG;QACpB,GAAG,uBAAuB,EAAU;QACpC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;KACnC,CAAC;IAGF,MAAM,UAAW,SAAQ,IAAA,kBAAQ,EAAC,MAAM,EAAE,aAAa,CAAC;KAAG;IAE3D,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAA,qBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC;AAEiC,0CAAe"}
@@ -0,0 +1,17 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { BaseEntity } from '../../models';
3
+ declare function CreateManyBodyMixin<Entity extends BaseEntity>(entity: Type<Entity>, CreateManyCustomBody?: Type): {
4
+ new (...args: any[]): {
5
+ [x: string]: any;
6
+ };
7
+ apply(this: Function, thisArg: any, argArray?: any): any;
8
+ call(this: Function, thisArg: any, ...argArray: any[]): any;
9
+ bind(this: Function, thisArg: any, ...argArray: any[]): any;
10
+ toString(): string;
11
+ readonly length: number;
12
+ arguments: any;
13
+ caller: Function;
14
+ readonly name: string;
15
+ [Symbol.hasInstance](value: any): boolean;
16
+ };
17
+ export { CreateManyBodyMixin };
@@ -9,22 +9,27 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.CreateManyBodyDtoMixin = void 0;
12
+ exports.CreateManyBodyMixin = void 0;
13
13
  const swagger_1 = require("@nestjs/swagger");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const class_validator_1 = require("class-validator");
16
- function CreateManyBodyDtoMixin(DtoBody) {
17
- class CreateManyBodyDto {
16
+ const mixins_1 = require("../../mixins");
17
+ function CreateManyBodyMixin(entity, CreateManyCustomBody) {
18
+ class ToCreate extends (0, mixins_1.EntityBodyMixin)(entity) {
19
+ }
20
+ class CreateManyDefaultDto {
18
21
  }
19
22
  __decorate([
20
- (0, swagger_1.ApiProperty)({ type: [DtoBody] }),
23
+ (0, swagger_1.ApiProperty)({ type: [ToCreate] }),
21
24
  (0, class_validator_1.ValidateNested)({ each: true }),
22
- (0, class_validator_1.IsInstance)(DtoBody, { each: true }),
25
+ (0, class_validator_1.IsInstance)(ToCreate, { each: true }),
23
26
  (0, class_validator_1.ArrayMinSize)(1),
24
- (0, class_transformer_1.Type)(() => DtoBody),
27
+ (0, class_transformer_1.Transform)(({ value }) => value?.map((e) => (0, class_transformer_1.plainToInstance)(ToCreate, e))),
25
28
  __metadata("design:type", Array)
26
- ], CreateManyBodyDto.prototype, "list", void 0);
27
- return CreateManyBodyDto;
29
+ ], CreateManyDefaultDto.prototype, "list", void 0);
30
+ class CreateManyDto extends (CreateManyCustomBody ?? CreateManyDefaultDto) {
31
+ }
32
+ return CreateManyDto;
28
33
  }
29
- exports.CreateManyBodyDtoMixin = CreateManyBodyDtoMixin;
30
- //# sourceMappingURL=create-many-body-dto.mixin.js.map
34
+ exports.CreateManyBodyMixin = CreateManyBodyMixin;
35
+ //# sourceMappingURL=create-many-body.mixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-many-body.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-body.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA8C;AAC9C,yDAA+D;AAC/D,qDAA2E;AAC3E,yCAA+C;AAG/C,SAAS,mBAAmB,CAA4B,MAAoB,EAAE,oBAA2B;IACvG,MAAM,QAAS,SAAQ,IAAA,wBAAe,EAAC,MAAM,CAAC;KAAG;IAEjD,MAAM,oBAAoB;KAOzB;IADC;QALC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAA,4BAAU,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,IAAA,8BAAY,EAAC,CAAC,CAAC;QACf,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;;sDACjE;IAGnB,MAAM,aAAc,SAAQ,CAC1B,oBAAoB,IAAI,oBAAoB,CAC7C;KAAG;IAEJ,OAAO,aAAa,CAAC;AACvB,CAAC;AAEQ,kDAAmB"}
@@ -3,8 +3,8 @@ import { CreateManyService } from './create-many-service.interface';
3
3
  type CreateManyBody<T = any> = {
4
4
  list: Partial<T>[];
5
5
  };
6
- interface CreateManyController<Entity extends BaseEntity> {
7
- createMany(body: CreateManyBody<Entity>): Promise<Entity[]>;
6
+ interface CreateManyController<Entity extends BaseEntity, Response = any> {
7
+ createMany(body: CreateManyBody<Entity>): Promise<(Entity | Response)[]>;
8
8
  }
9
9
  type CreateManyControllerConstructor<Entity extends BaseEntity> = new (service: CreateManyService<Entity>) => CreateManyController<Entity>;
10
10
  export type { CreateManyBody, CreateManyController, CreateManyControllerConstructor };
@@ -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 { CreateManyControllerConstructor } from './create-many-controller.interface';
5
- declare function CreateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyControllerConstructor<Entity>;
5
+ declare function CreateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyControllerConstructor<Entity>;
6
6
  export { CreateManyControllerMixin };
@@ -14,15 +14,31 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CreateManyControllerMixin = 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 CreateManyControllerMixin(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
+ const create_many_body_mixin_1 = require("./create-many-body.mixin");
22
+ const create_many_presenter_mixin_1 = require("./create-many-presenter.mixin");
23
+ function CreateManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
24
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
25
+ class CreateManyBody extends (0, create_many_body_mixin_1.CreateManyBodyMixin)(entity, dTOs?.body) {
26
+ }
27
+ Object.defineProperty(CreateManyBody, 'name', {
28
+ value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
29
+ writable: false,
30
+ });
31
+ class CreateManyPresenter extends (0, create_many_presenter_mixin_1.CreateManyPresenterMixin)(entity, dTOs?.presenter) {
32
+ }
33
+ Object.defineProperty(CreateManyPresenter, 'name', {
34
+ value: dTOs?.presenter
35
+ ? `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
36
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
37
+ writable: false,
38
+ });
23
39
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
24
- body: RouteBody,
25
- presenter: RoutePresenter,
40
+ body: CreateManyBody,
41
+ presenter: CreateManyPresenter,
26
42
  });
27
43
  class CreateManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
28
44
  }
@@ -32,7 +48,17 @@ function CreateManyControllerMixin(entity, controllerOptions, routeConfig, versi
32
48
  this.entity = entity;
33
49
  }
34
50
  async createMany(body) {
35
- return this.service.createMany(body.list);
51
+ if (!('list' in body &&
52
+ Array.isArray(body.list) &&
53
+ body.list.length &&
54
+ body.list.every((e) => !(0, lodash_1.isEmpty)(e)))) {
55
+ throw new common_1.BadRequestException('Invalid request body');
56
+ }
57
+ let toCreateList = body.list;
58
+ const toEntities = CreateManyBody.toEntities;
59
+ const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList);
60
+ const fromEntities = CreateManyPresenter.fromEntities;
61
+ return fromEntities ? fromEntities(list) : list;
36
62
  }
37
63
  }
38
64
  __decorate([
@@ -40,7 +66,7 @@ function CreateManyControllerMixin(entity, controllerOptions, routeConfig, versi
40
66
  (0, common_1.UseGuards)(CreateManyPoliciesGuard),
41
67
  __param(0, (0, common_1.Body)()),
42
68
  __metadata("design:type", Function),
43
- __metadata("design:paramtypes", [typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
69
+ __metadata("design:paramtypes", [CreateManyBody]),
44
70
  __metadata("design:returntype", Promise)
45
71
  ], BaseCreateManyController.prototype, "createMany", null);
46
72
  Object.defineProperty(BaseCreateManyController, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"create-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,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,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,uBAAwB,SAAQ,IAAA,iCAAwB,EAC5D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,wBAAwB;QAG5B,YACqB,OAAkC;YAAlC,YAAO,GAAP,OAAO,CAA2B;YAHpC,WAAM,GAAG,MAAM,CAAC;QAIhC,CAAC;QAKE,AAAN,KAAK,CAAC,UAAU,CAAS,IAAe;YACtC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAoC,CAAC,CAAC;QAC5E,CAAC;KACF;IAHO;QAHL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QAEjB,WAAA,IAAA,aAAI,GAAE,CAAA;;6DAAO,SAAS,oBAAT,SAAS;;8DAEvC;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":"create-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-controller.mixin.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { ExtendedSocket, GatewayResponse } from '../../interfaces';
3
3
  import { BaseEntity } from '../../models';
4
4
  import { CreateManyBody } from './create-many-controller.interface';
5
5
  import { CreateManyService } from './create-many-service.interface';
6
- interface CreateManyGateway<Entity extends BaseEntity> {
7
- createMany(socket: ExtendedSocket, body: CreateManyBody<Entity>): GatewayResponse<Entity[]>;
6
+ interface CreateManyGateway<Entity extends BaseEntity, Response = any> {
7
+ createMany(socket: ExtendedSocket, body: CreateManyBody<Entity>): GatewayResponse<(Entity | Response)[]>;
8
8
  }
9
9
  type CreateManyGatewayConstructor<Entity extends BaseEntity> = new (service: CreateManyService<Entity>, jwtService: JwtService) => CreateManyGateway<Entity>;
10
10
  export type { CreateManyGateway, CreateManyGatewayConstructor };
@@ -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 { CreateManyGatewayConstructor } from './create-many-gateway.interface';
5
- declare function CreateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyGatewayConstructor<Entity>;
5
+ declare function CreateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyGatewayConstructor<Entity>;
6
6
  export { CreateManyGatewayMixin };
@@ -19,9 +19,24 @@ 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 CreateManyGatewayMixin(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 create_many_body_mixin_1 = require("./create-many-body.mixin");
23
+ const create_many_presenter_mixin_1 = require("./create-many-presenter.mixin");
24
+ function CreateManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
25
+ const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
26
+ class CreateManyData extends (0, create_many_body_mixin_1.CreateManyBodyMixin)(entity, dTOs?.body) {
27
+ }
28
+ Object.defineProperty(CreateManyData, 'name', {
29
+ value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
30
+ writable: false,
31
+ });
32
+ class CreateManyResponse extends (0, create_many_presenter_mixin_1.CreateManyPresenterMixin)(entity, dTOs?.presenter) {
33
+ }
34
+ Object.defineProperty(CreateManyResponse, 'name', {
35
+ value: dTOs?.presenter
36
+ ? `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
37
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
38
+ writable: false,
39
+ });
25
40
  class BaseCreateManyGateway extends gateways_1.BaseGateway {
26
41
  constructor(service, jwtService) {
27
42
  super(jwtService);
@@ -30,14 +45,20 @@ function CreateManyGatewayMixin(entity, controllerOptions, routeConfig, version)
30
45
  this.entity = entity;
31
46
  }
32
47
  async createMany(socket, body) {
33
- if (!('list' in body && Array.isArray(body.list) && body.list.length)) {
48
+ if (!('list' in body &&
49
+ Array.isArray(body.list) &&
50
+ body.list.length &&
51
+ body.list.every((e) => !(0, lodash_1.isEmpty)(e)))) {
34
52
  throw new websockets_1.WsException('Invalid request body');
35
53
  }
36
54
  this.addUserToSocket(socket, isPublic);
37
- const data = await this.service.createMany(body.list);
55
+ let toCreateList = body.list;
56
+ const toEntities = CreateManyData.toEntities;
57
+ const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList);
58
+ const fromEntities = CreateManyResponse.fromEntities;
38
59
  return {
39
60
  event,
40
- data,
61
+ data: fromEntities ? fromEntities(list) : list,
41
62
  };
42
63
  }
43
64
  }
@@ -47,8 +68,8 @@ function CreateManyGatewayMixin(entity, controllerOptions, routeConfig, version)
47
68
  __param(0, (0, websockets_1.ConnectedSocket)()),
48
69
  __param(1, (0, websockets_1.MessageBody)()),
49
70
  __metadata("design:type", Function),
50
- __metadata("design:paramtypes", [Object, Object]),
51
- __metadata("design:returntype", Promise)
71
+ __metadata("design:paramtypes", [Object, CreateManyData]),
72
+ __metadata("design:returntype", Object)
52
73
  ], BaseCreateManyGateway.prototype, "createMany", null);
53
74
  Object.defineProperty(BaseCreateManyGateway, 'name', {
54
75
  value: `Base${(0, helpers_1.provideName)(routeType, displayedName, version, 'Gateway')}`,
@@ -1 +1 @@
1
- {"version":3,"file":"create-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAmC;AACnC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAAoE;AAOpE,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,IAAoB;YAEnC,IAAI,CAAC,CACH,MAAM,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAC/D,EAAE,CAAC;gBACF,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,UAAU,CAAC,IAAI,CAAC,IAAoC,CAAC,CAAC;YAEtF,OAAO;gBACL,KAAK;gBACL,IAAI;aACL,CAAC;QACJ,CAAC;KACF;IAnBO;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;;;;2DAgBf;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":"create-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-gateway.mixin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { BaseEntity } from '../../models';
3
+ declare function CreateManyPresenterMixin<Entity extends BaseEntity>(entity: Type<Entity>, CreateManyCustomPresenter?: Type): {
4
+ new (...args: any[]): {
5
+ [x: string]: any;
6
+ };
7
+ apply(this: Function, thisArg: any, argArray?: any): any;
8
+ call(this: Function, thisArg: any, ...argArray: any[]): any;
9
+ bind(this: Function, thisArg: any, ...argArray: any[]): any;
10
+ toString(): string;
11
+ readonly length: number;
12
+ arguments: any;
13
+ caller: Function;
14
+ readonly name: string;
15
+ [Symbol.hasInstance](value: any): boolean;
16
+ };
17
+ export { CreateManyPresenterMixin };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateManyPresenterMixin = void 0;
4
+ const mixins_1 = require("../../mixins");
5
+ function CreateManyPresenterMixin(entity, CreateManyCustomPresenter) {
6
+ class CreateManyDto extends (CreateManyCustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
7
+ }
8
+ return CreateManyDto;
9
+ }
10
+ exports.CreateManyPresenterMixin = CreateManyPresenterMixin;
11
+ //# sourceMappingURL=create-many-presenter.mixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-many-presenter.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-presenter.mixin.ts"],"names":[],"mappings":";;;AACA,yCAAoD;AAGpD,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,yBAAgC;IAEhC,MAAM,aAAc,SAAQ,CAC1B,yBAAyB,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAC1D;KAAG;IAEJ,OAAO,aAAa,CAAC;AACvB,CAAC;AAEQ,4DAAwB"}
@@ -1,9 +1,10 @@
1
1
  export * from './base-create-many.service';
2
2
  export * from './create-many.helper';
3
3
  export * from './create-many.module';
4
- export * from './create-many-body-dto.mixin';
4
+ export * from './create-many-body.mixin';
5
5
  export * from './create-many-controller.interface';
6
6
  export * from './create-many-controller.mixin';
7
7
  export * from './create-many-gateway.interface';
8
8
  export * from './create-many-gateway.mixin';
9
+ export * from './create-many-presenter.mixin';
9
10
  export * from './create-many-service.interface';
@@ -17,10 +17,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./base-create-many.service"), exports);
18
18
  __exportStar(require("./create-many.helper"), exports);
19
19
  __exportStar(require("./create-many.module"), exports);
20
- __exportStar(require("./create-many-body-dto.mixin"), exports);
20
+ __exportStar(require("./create-many-body.mixin"), exports);
21
21
  __exportStar(require("./create-many-controller.interface"), exports);
22
22
  __exportStar(require("./create-many-controller.mixin"), exports);
23
23
  __exportStar(require("./create-many-gateway.interface"), exports);
24
24
  __exportStar(require("./create-many-gateway.mixin"), exports);
25
+ __exportStar(require("./create-many-presenter.mixin"), exports);
25
26
  __exportStar(require("./create-many-service.interface"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,+DAA6C;AAC7C,qEAAmD;AACnD,iEAA+C;AAC/C,kEAAgD;AAChD,8DAA4C;AAC5C,kEAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,2DAAyC;AACzC,qEAAmD;AACnD,iEAA+C;AAC/C,kEAAgD;AAChD,8DAA4C;AAC5C,gEAA8C;AAC9C,kEAAgD"}
@@ -1,7 +1,7 @@
1
1
  import { BaseEntity } from '../../models';
2
2
  import { CreateOneService } from './create-one-service.interface';
3
- interface CreateOneController<Entity extends BaseEntity> {
4
- createOne<Body>(body: Body): Promise<Entity | undefined>;
3
+ interface CreateOneController<Entity extends BaseEntity, Response = any> {
4
+ createOne<Body>(body: Body): Promise<Entity | Response>;
5
5
  }
6
6
  type CreateOneControllerConstructor<Entity extends BaseEntity> = new (service: CreateOneService<Entity>) => CreateOneController<Entity>;
7
7
  export type { CreateOneController, CreateOneControllerConstructor };
@@ -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 { CreateOneControllerConstructor } from './create-one-controller.interface';
5
- declare function CreateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneControllerConstructor<Entity>;
5
+ declare function CreateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneControllerConstructor<Entity>;
6
6
  export { CreateOneControllerMixin };
@@ -17,12 +17,25 @@ const common_1 = require("@nestjs/common");
17
17
  const builders_1 = require("../../builders");
18
18
  const helpers_1 = require("../../helpers");
19
19
  const mixins_1 = require("../../mixins");
20
- function CreateOneControllerMixin(entity, controllerOptions, routeConfig, version) {
21
- var _a;
22
- const { routeType, displayedName, description, isPublic, RouteBody, RoutePresenter, abilityPredicate, } = (0, helpers_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
20
+ function CreateOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
21
+ const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
22
+ class CreateOneBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity)) {
23
+ }
24
+ Object.defineProperty(CreateOneBody, 'name', {
25
+ value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
26
+ writable: false,
27
+ });
28
+ class CreateOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
29
+ }
30
+ Object.defineProperty(CreateOnePresenter, 'name', {
31
+ value: dTOs?.presenter
32
+ ? `CreateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
33
+ : `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
34
+ writable: false,
35
+ });
23
36
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
24
- body: RouteBody,
25
- presenter: RoutePresenter,
37
+ body: CreateOneBody,
38
+ presenter: CreateOnePresenter,
26
39
  });
27
40
  class CreateOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
28
41
  }
@@ -32,7 +45,10 @@ function CreateOneControllerMixin(entity, controllerOptions, routeConfig, versio
32
45
  this.entity = entity;
33
46
  }
34
47
  async createOne(body) {
35
- return this.service.createOne(body);
48
+ const toEntity = CreateOneBody.toEntity;
49
+ const entity = await this.service.createOne(toEntity ? toEntity(body) : body);
50
+ const fromEntity = CreateOnePresenter.fromEntity;
51
+ return fromEntity ? fromEntity(entity) : entity;
36
52
  }
37
53
  }
38
54
  __decorate([
@@ -40,7 +56,7 @@ function CreateOneControllerMixin(entity, controllerOptions, routeConfig, versio
40
56
  (0, common_1.UseGuards)(CreateOnePoliciesGuard),
41
57
  __param(0, (0, common_1.Body)()),
42
58
  __metadata("design:type", Function),
43
- __metadata("design:paramtypes", [typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
59
+ __metadata("design:paramtypes", [CreateOneBody]),
44
60
  __metadata("design:returntype", Promise)
45
61
  ], BaseCreateOneController.prototype, "createOne", null);
46
62
  Object.defineProperty(BaseCreateOneController, 'name', {
@@ -1 +1 @@
1
- {"version":3,"file":"create-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAwD;AACxD,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,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,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;QAKK,AAAN,KAAK,CAAC,SAAS,CAAS,IAAe;YACrC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAkC,CAAC,CAAC;QACpE,CAAC;KACF;IAHO;QAHL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,sBAAsB,CAAC;QAEjB,WAAA,IAAA,aAAI,GAAE,CAAA;;6DAAO,SAAS,oBAAT,SAAS;;4DAEtC;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":"create-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAwD;AACxD,2CAAmG;AAEnG,yCAA+F;AAK/F,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,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,KAAK;QACpE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,kBAAmB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;KAAG;IAErF,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,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,aAAa;QACnB,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,CAAS,IAAmB;YACzC,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,kBACD,CAAC,UAAU,CAAC;YAEb,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,CAAC;KACF;IAbO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,sBAAsB,CAAC;QACjB,WAAA,IAAA,aAAI,GAAE,CAAA;;yCAAO,aAAa;;4DAY1C;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"}
@@ -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 { CreateOneService } from './create-one-service.interface';
5
- interface CreateOneGateway<Entity extends BaseEntity> {
6
- createOne<Body>(socket: ExtendedSocket, body: Body): GatewayResponse<Entity | undefined>;
5
+ interface CreateOneGateway<Entity extends BaseEntity, Response = any> {
6
+ createOne<Body>(socket: ExtendedSocket, body: Body): GatewayResponse<Entity | Response>;
7
7
  }
8
8
  type CreateOneGatewayConstructor<Entity extends BaseEntity> = new (service: CreateOneService<Entity>, jwtService: JwtService) => CreateOneGateway<Entity>;
9
9
  export type { CreateOneGateway, CreateOneGatewayConstructor };
@@ -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 { CreateOneGatewayConstructor } from './create-one-gateway.interface';
5
- declare function CreateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneGatewayConstructor<Entity>;
5
+ declare function CreateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneGatewayConstructor<Entity>;
6
6
  export { CreateOneGatewayMixin };