mongodb-dynamic-api 2.1.1 → 2.1.3

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 (57) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +1 -1
  3. package/src/builders/casl/casl-ability.builder.d.ts +2 -2
  4. package/src/builders/casl/casl-ability.builder.js +7 -4
  5. package/src/dtos/delete.presenter.d.ts +3 -0
  6. package/src/{routes/delete-one/delete-one.presenter.js → dtos/delete.presenter.js} +4 -4
  7. package/src/dtos/index.d.ts +1 -0
  8. package/src/dtos/index.js +1 -0
  9. package/src/guards/base-policies.guard.d.ts +2 -2
  10. package/src/helpers/controller-ability-predicates.helper.d.ts +2 -2
  11. package/src/helpers/controller-mixin.helper.d.ts +66 -0
  12. package/src/helpers/controller-mixin.helper.js +159 -0
  13. package/src/helpers/format.helper.d.ts +1 -0
  14. package/src/helpers/format.helper.js +5 -1
  15. package/src/interfaces/dynamic-api-casl-ability.interface.d.ts +8 -5
  16. package/src/interfaces/dynamic-api-casl-ability.interface.js +3 -0
  17. package/src/interfaces/dynamic-api-controller-options.interface.d.ts +2 -2
  18. package/src/interfaces/dynamic-api-policy-handler.interface.d.ts +3 -5
  19. package/src/interfaces/dynamic-api-route-config.interface.d.ts +2 -2
  20. package/src/mixins/create-policies-guard.mixin.d.ts +2 -2
  21. package/src/modules/auth/interfaces/auth-options.interface.d.ts +2 -2
  22. package/src/modules/auth/mixins/auth-register-policies-guard.mixin.d.ts +2 -2
  23. package/src/modules/auth/services/base-auth.service.d.ts +1 -0
  24. package/src/modules/auth/services/base-auth.service.js +7 -4
  25. package/src/routes/create-many/create-many-controller.mixin.d.ts +1 -1
  26. package/src/routes/create-many/create-many-controller.mixin.js +6 -54
  27. package/src/routes/create-one/create-one-controller.mixin.d.ts +1 -1
  28. package/src/routes/create-one/create-one-controller.mixin.js +6 -35
  29. package/src/routes/delete-many/base-delete-many.service.d.ts +2 -2
  30. package/src/routes/delete-many/base-delete-many.service.js +2 -2
  31. package/src/routes/delete-many/delete-many-controller.mixin.d.ts +1 -1
  32. package/src/routes/delete-many/delete-many-controller.mixin.js +4 -28
  33. package/src/routes/delete-many/index.d.ts +0 -1
  34. package/src/routes/delete-many/index.js +0 -1
  35. package/src/routes/delete-one/base-delete-one.service.d.ts +2 -2
  36. package/src/routes/delete-one/base-delete-one.service.js +2 -2
  37. package/src/routes/delete-one/delete-one-controller.mixin.d.ts +1 -1
  38. package/src/routes/delete-one/delete-one-controller.mixin.js +5 -37
  39. package/src/routes/delete-one/index.d.ts +0 -1
  40. package/src/routes/delete-one/index.js +0 -1
  41. package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +1 -1
  42. package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +6 -35
  43. package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +1 -1
  44. package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +6 -42
  45. package/src/routes/get-many/get-many-controller.mixin.d.ts +1 -1
  46. package/src/routes/get-many/get-many-controller.mixin.js +5 -35
  47. package/src/routes/get-one/get-one-controller.mixin.d.ts +1 -1
  48. package/src/routes/get-one/get-one-controller.mixin.js +5 -42
  49. package/src/routes/replace-one/replace-one-controller.mixin.d.ts +1 -1
  50. package/src/routes/replace-one/replace-one-controller.mixin.js +6 -43
  51. package/src/routes/update-many/update-many-controller.mixin.d.ts +1 -1
  52. package/src/routes/update-many/update-many-controller.mixin.js +5 -34
  53. package/src/routes/update-one/update-one-controller.mixin.d.ts +1 -1
  54. package/src/routes/update-one/update-one-controller.mixin.js +6 -43
  55. package/src/version.json +1 -1
  56. package/tsconfig.tsbuildinfo +1 -1
  57. package/src/routes/delete-one/delete-one.presenter.d.ts +0 -3
@@ -16,54 +16,17 @@ exports.ReplaceOneControllerMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const builders_1 = require("../../builders");
18
18
  const decorators_1 = require("../../decorators");
19
- const dtos_1 = require("../../dtos");
20
19
  const helpers_1 = require("../../helpers");
21
- const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
20
+ const controller_mixin_helper_1 = require("../../helpers/controller-mixin.helper");
22
21
  const mixins_1 = require("../../mixins");
23
- function ReplaceOneControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
24
- const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
25
- const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } = dTOs ?? {};
26
- let isPublic;
27
- if (typeof isPublicRoute === 'boolean') {
28
- isPublic = isPublicRoute;
29
- }
30
- else if (typeof isPublicController === 'boolean') {
31
- isPublic = isPublicController;
32
- }
33
- else {
34
- isPublic = false;
35
- }
36
- class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity)) {
37
- }
38
- if (!CustomBody) {
39
- Object.defineProperty(RouteBody, 'name', {
40
- value: `ReplaceOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
41
- writable: false,
42
- });
43
- }
44
- class RouteParam extends (CustomParam ?? dtos_1.EntityParam) {
45
- }
46
- if (!CustomParam) {
47
- Object.defineProperty(RouteParam, 'name', {
48
- value: `ReplaceOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Param`,
49
- writable: false,
50
- });
51
- }
52
- class RoutePresenter extends (CustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
53
- }
54
- if (!CustomPresenter) {
55
- Object.defineProperty(RoutePresenter, 'name', {
56
- value: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
57
- writable: false,
58
- });
59
- }
22
+ function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, version) {
23
+ var _a;
24
+ const { routeType, description, isPublic, EntityParam, RouteBody, RoutePresenter, abilityPredicate, } = (0, controller_mixin_helper_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
60
25
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('ReplaceOne', entity, version, description, isPublic, {
61
- param: RouteParam,
62
- query: undefined,
26
+ param: EntityParam,
63
27
  body: RouteBody,
64
28
  presenter: RoutePresenter,
65
29
  });
66
- const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
67
30
  class ReplaceOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
68
31
  }
69
32
  class BaseReplaceOneController {
@@ -82,7 +45,7 @@ function ReplaceOneControllerMixin(entity, { path, apiTag, isPublic: isPublicCon
82
45
  __param(0, (0, common_1.Param)('id')),
83
46
  __param(1, (0, common_1.Body)()),
84
47
  __metadata("design:type", Function),
85
- __metadata("design:paramtypes", [String, RouteBody]),
48
+ __metadata("design:paramtypes", [String, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
86
49
  __metadata("design:returntype", Promise)
87
50
  ], BaseReplaceOneController.prototype, "replaceOne", null);
88
51
  Object.defineProperty(BaseReplaceOneController, 'name', {
@@ -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 { UpdateManyControllerConstructor } from './update-many-controller.interface';
5
- declare function UpdateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: DynamicApiControllerOptions<Entity>, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }: DynamicAPIRouteConfig<Entity>, version?: string): UpdateManyControllerConstructor<Entity>;
5
+ declare function UpdateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): UpdateManyControllerConstructor<Entity>;
6
6
  export { UpdateManyControllerMixin };
@@ -17,44 +17,15 @@ const common_1 = require("@nestjs/common");
17
17
  const builders_1 = require("../../builders");
18
18
  const decorators_1 = require("../../decorators");
19
19
  const helpers_1 = require("../../helpers");
20
- const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
20
+ const controller_mixin_helper_1 = require("../../helpers/controller-mixin.helper");
21
21
  const mixins_1 = require("../../mixins");
22
- function UpdateManyControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
23
- const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
24
- const { body: CustomBody, presenter: CustomPresenter, } = dTOs ?? {};
25
- let isPublic;
26
- if (typeof isPublicRoute === 'boolean') {
27
- isPublic = isPublicRoute;
28
- }
29
- else if (typeof isPublicController === 'boolean') {
30
- isPublic = isPublicController;
31
- }
32
- else {
33
- isPublic = false;
34
- }
35
- class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
36
- }
37
- if (!CustomBody) {
38
- Object.defineProperty(RouteBody, 'name', {
39
- value: `UpdateMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
40
- writable: false,
41
- });
42
- }
43
- class RoutePresenter extends (CustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
44
- }
45
- if (!CustomPresenter) {
46
- Object.defineProperty(RoutePresenter, 'name', {
47
- value: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
48
- writable: false,
49
- });
50
- }
22
+ function UpdateManyControllerMixin(entity, controllerOptions, routeConfig, version) {
23
+ var _a;
24
+ const { routeType, description, isPublic, RouteBody, RoutePresenter, abilityPredicate, } = (0, controller_mixin_helper_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
51
25
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateMany', entity, version, description, isPublic, {
52
- param: undefined,
53
- query: undefined,
54
26
  body: RouteBody,
55
27
  presenter: RoutePresenter,
56
28
  });
57
- const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
58
29
  class UpdateManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
59
30
  }
60
31
  class BaseUpdateManyController {
@@ -73,7 +44,7 @@ function UpdateManyControllerMixin(entity, { path, apiTag, isPublic: isPublicCon
73
44
  __param(0, (0, common_1.Query)('ids')),
74
45
  __param(1, (0, common_1.Body)()),
75
46
  __metadata("design:type", Function),
76
- __metadata("design:paramtypes", [Array, RouteBody]),
47
+ __metadata("design:paramtypes", [Array, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
77
48
  __metadata("design:returntype", Promise)
78
49
  ], BaseUpdateManyController.prototype, "updateMany", null);
79
50
  Object.defineProperty(BaseUpdateManyController, 'name', {
@@ -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 { UpdateOneControllerConstructor } from './update-one-controller.interface';
5
- declare function UpdateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: DynamicApiControllerOptions<Entity>, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }: DynamicAPIRouteConfig<Entity>, version?: string): UpdateOneControllerConstructor<Entity>;
5
+ declare function UpdateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): UpdateOneControllerConstructor<Entity>;
6
6
  export { UpdateOneControllerMixin };
@@ -16,54 +16,17 @@ exports.UpdateOneControllerMixin = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const builders_1 = require("../../builders");
18
18
  const decorators_1 = require("../../decorators");
19
- const dtos_1 = require("../../dtos");
20
19
  const helpers_1 = require("../../helpers");
21
- const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
20
+ const controller_mixin_helper_1 = require("../../helpers/controller-mixin.helper");
22
21
  const mixins_1 = require("../../mixins");
23
- function UpdateOneControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
24
- const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
25
- const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } = dTOs ?? {};
26
- let isPublic;
27
- if (typeof isPublicRoute === 'boolean') {
28
- isPublic = isPublicRoute;
29
- }
30
- else if (typeof isPublicController === 'boolean') {
31
- isPublic = isPublicController;
32
- }
33
- else {
34
- isPublic = false;
35
- }
36
- class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
37
- }
38
- if (!CustomBody) {
39
- Object.defineProperty(RouteBody, 'name', {
40
- value: `UpdateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
41
- writable: false,
42
- });
43
- }
44
- class RouteParam extends (CustomParam ?? dtos_1.EntityParam) {
45
- }
46
- if (!CustomParam) {
47
- Object.defineProperty(RouteParam, 'name', {
48
- value: `UpdateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Param`,
49
- writable: false,
50
- });
51
- }
52
- class RoutePresenter extends (CustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
53
- }
54
- if (!CustomPresenter) {
55
- Object.defineProperty(RoutePresenter, 'name', {
56
- value: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
57
- writable: false,
58
- });
59
- }
22
+ function UpdateOneControllerMixin(entity, controllerOptions, routeConfig, version) {
23
+ var _a;
24
+ const { routeType, description, isPublic, EntityParam, RouteBody, RoutePresenter, abilityPredicate, } = (0, controller_mixin_helper_1.getControllerMixinData)(entity, controllerOptions, routeConfig, version);
60
25
  const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateOne', entity, version, description, isPublic, {
61
- param: RouteParam,
62
- query: undefined,
26
+ param: EntityParam,
63
27
  body: RouteBody,
64
28
  presenter: RoutePresenter,
65
29
  });
66
- const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
67
30
  class UpdateOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
68
31
  }
69
32
  class BaseUpdateOneController {
@@ -82,7 +45,7 @@ function UpdateOneControllerMixin(entity, { path, apiTag, isPublic: isPublicCont
82
45
  __param(0, (0, common_1.Param)('id')),
83
46
  __param(1, (0, common_1.Body)()),
84
47
  __metadata("design:type", Function),
85
- __metadata("design:paramtypes", [String, RouteBody]),
48
+ __metadata("design:paramtypes", [String, typeof (_a = typeof RouteBody !== "undefined" && RouteBody) === "function" ? _a : Object]),
86
49
  __metadata("design:returntype", Promise)
87
50
  ], BaseUpdateOneController.prototype, "updateOne", null);
88
51
  Object.defineProperty(BaseUpdateOneController, 'name', {
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "2.1.1"
2
+ "version": "2.1.3"
3
3
  }