mongodb-dynamic-api 1.3.3 → 1.4.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.
- package/CHANGELOG.md +15 -0
- package/README.md +476 -21
- package/package.json +11 -1
- package/src/builders/casl/casl-ability.builder.d.ts +5 -0
- package/src/builders/casl/casl-ability.builder.js +14 -0
- package/src/builders/index.d.ts +3 -1
- package/src/builders/index.js +3 -1
- package/src/builders/route-decorators/auth-decorators.builder.d.ts +7 -0
- package/src/builders/route-decorators/auth-decorators.builder.js +14 -0
- package/src/builders/route-decorators/route-decorators.builder.d.ts +23 -0
- package/src/builders/{route-decorators.builder.js → route-decorators/route-decorators.builder.js} +45 -23
- package/src/decorators/check-policies.decorator.d.ts +5 -0
- package/src/decorators/check-policies.decorator.js +8 -0
- package/src/decorators/index.d.ts +2 -0
- package/src/decorators/index.js +2 -0
- package/src/decorators/public.decorator.d.ts +3 -0
- package/src/decorators/public.decorator.js +8 -0
- package/src/dynamic-api.module.d.ts +5 -4
- package/src/dynamic-api.module.js +132 -87
- package/src/guards/base-policies.guard.d.ts +13 -0
- package/src/guards/base-policies.guard.js +32 -0
- package/src/guards/dynamic-api-jwt-auth.guard.d.ts +11 -0
- package/src/guards/dynamic-api-jwt-auth.guard.js +38 -0
- package/src/guards/index.d.ts +2 -0
- package/src/guards/index.js +18 -0
- package/src/helpers/controller-ability-predicates.helper.d.ts +4 -0
- package/src/helpers/controller-ability-predicates.helper.js +23 -0
- package/src/helpers/index.d.ts +1 -0
- package/src/helpers/index.js +1 -0
- package/src/helpers/route-decorators.helper.d.ts +2 -2
- package/src/helpers/schema.helper.d.ts +28 -0
- package/src/helpers/schema.helper.js +22 -0
- package/src/index.d.ts +3 -1
- package/src/index.js +3 -1
- package/src/interceptors/dynamic-api-cache.interceptor.d.ts +16 -0
- package/src/interceptors/dynamic-api-cache.interceptor.js +48 -0
- package/src/interceptors/index.d.ts +1 -0
- package/src/interceptors/index.js +17 -0
- package/src/interfaces/controller-options.interface.d.ts +5 -1
- package/src/interfaces/decorator-builder.interface.d.ts +5 -0
- package/src/interfaces/dynamic-api-cache-options.interface.d.ts +1 -0
- package/src/interfaces/dynamic-api-casl-ability.interface.d.ts +17 -0
- package/src/interfaces/dynamic-api-casl-ability.interface.js +11 -0
- package/src/interfaces/dynamic-api-global-state.interface.d.ts +16 -0
- package/src/interfaces/dynamic-api-options.interface.d.ts +5 -2
- package/src/interfaces/dynamic-api-options.interface.js +3 -0
- package/src/interfaces/dynamic-api-policy-handler.interface.d.ts +16 -0
- package/src/interfaces/dynamic-api-route-config.interface.d.ts +7 -9
- package/src/interfaces/dynamic-api-route-dtos-bundle.type.d.ts +8 -0
- package/src/interfaces/dynamic-api-route-module.type.d.ts +3 -0
- package/src/interfaces/dynamic-api-route-type.type.d.ts +2 -0
- package/src/interfaces/index.d.ts +11 -2
- package/src/interfaces/index.js +11 -2
- package/src/mixins/create-policies-guard.mixin.d.ts +5 -0
- package/src/mixins/create-policies-guard.mixin.js +37 -0
- package/src/mixins/index.d.ts +1 -0
- package/src/mixins/index.js +1 -0
- package/src/modules/auth/auth.helper.d.ts +10 -0
- package/src/modules/auth/auth.helper.js +103 -0
- package/src/modules/auth/auth.module.d.ts +12 -0
- package/src/modules/auth/auth.module.js +55 -0
- package/src/modules/auth/guards/index.d.ts +2 -0
- package/src/modules/auth/guards/index.js +18 -0
- package/src/modules/auth/guards/jwt-auth.guard.d.ts +4 -0
- package/src/modules/auth/guards/jwt-auth.guard.js +17 -0
- package/src/modules/auth/guards/local-auth.guard.d.ts +4 -0
- package/src/modules/auth/guards/local-auth.guard.js +17 -0
- package/src/modules/auth/index.d.ts +7 -0
- package/src/modules/auth/index.js +23 -0
- package/src/modules/auth/interfaces/auth-controller.interface.d.ts +9 -0
- package/src/modules/auth/interfaces/auth-options.interface.d.ts +22 -0
- package/src/modules/auth/interfaces/auth-service.interface.d.ts +12 -0
- package/src/modules/auth/interfaces/index.d.ts +3 -0
- package/src/modules/auth/interfaces/index.js +19 -0
- package/src/modules/auth/mixins/auth-controller.mixin.d.ts +6 -0
- package/src/modules/auth/mixins/auth-controller.mixin.js +101 -0
- package/src/modules/auth/mixins/auth-register-policies-guard.mixin.d.ts +6 -0
- package/src/modules/auth/mixins/auth-register-policies-guard.mixin.js +59 -0
- package/src/modules/auth/mixins/index.d.ts +2 -0
- package/src/modules/auth/mixins/index.js +18 -0
- package/src/modules/auth/services/base-auth.service.d.ts +51 -0
- package/src/modules/auth/services/base-auth.service.js +64 -0
- package/src/modules/auth/services/index.d.ts +1 -0
- package/src/modules/auth/services/index.js +17 -0
- package/src/modules/auth/strategies/index.d.ts +1 -0
- package/src/modules/auth/strategies/index.js +17 -0
- package/src/modules/auth/strategies/jwt.strategy.d.ts +8 -0
- package/src/modules/auth/strategies/jwt.strategy.js +35 -0
- package/src/modules/dynamic-api-config/dynamic-api-config.module.d.ts +5 -0
- package/src/modules/dynamic-api-config/dynamic-api-config.module.js +31 -0
- package/src/modules/dynamic-api-config/index.d.ts +1 -0
- package/src/modules/dynamic-api-config/index.js +17 -0
- package/src/modules/index.d.ts +2 -11
- package/src/modules/index.js +2 -11
- package/src/routes/create-many/create-many-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/create-many/create-many-controller.mixin.js +26 -4
- package/src/{modules → routes}/create-many/create-many.helper.d.ts +2 -2
- package/src/{modules → routes}/create-many/create-many.helper.js +6 -4
- package/src/{modules → routes}/create-many/create-many.module.d.ts +1 -1
- package/src/{modules → routes}/create-many/create-many.module.js +2 -2
- package/src/routes/create-one/create-one-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/create-one/create-one-controller.mixin.js +25 -3
- package/src/{modules → routes}/create-one/create-one.helper.d.ts +2 -2
- package/src/{modules → routes}/create-one/create-one.helper.js +6 -4
- package/src/routes/create-one/create-one.module.d.ts +6 -0
- package/src/{modules → routes}/create-one/create-one.module.js +3 -3
- package/src/routes/delete-many/delete-many-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/delete-many/delete-many-controller.mixin.js +26 -3
- package/src/{modules → routes}/delete-many/delete-many.helper.d.ts +2 -2
- package/src/{modules → routes}/delete-many/delete-many.helper.js +6 -4
- package/src/routes/delete-many/delete-many.module.d.ts +6 -0
- package/src/{modules → routes}/delete-many/delete-many.module.js +3 -3
- package/src/routes/delete-one/delete-one-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/delete-one/delete-one-controller.mixin.js +26 -3
- package/src/{modules → routes}/delete-one/delete-one.helper.d.ts +2 -2
- package/src/{modules → routes}/delete-one/delete-one.helper.js +6 -4
- package/src/routes/delete-one/delete-one.module.d.ts +6 -0
- package/src/{modules → routes}/delete-one/delete-one.module.js +3 -3
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/duplicate-many/duplicate-many-controller.mixin.js +25 -3
- package/src/{modules → routes}/duplicate-many/duplicate-many.helper.d.ts +2 -2
- package/src/{modules → routes}/duplicate-many/duplicate-many.helper.js +6 -4
- package/src/routes/duplicate-many/duplicate-many.module.d.ts +6 -0
- package/src/{modules → routes}/duplicate-many/duplicate-many.module.js +3 -3
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/duplicate-one/duplicate-one-controller.mixin.js +25 -3
- package/src/{modules → routes}/duplicate-one/duplicate-one.helper.d.ts +2 -2
- package/src/{modules → routes}/duplicate-one/duplicate-one.helper.js +6 -4
- package/src/routes/duplicate-one/duplicate-one.module.d.ts +6 -0
- package/src/{modules → routes}/duplicate-one/duplicate-one.module.js +3 -3
- package/src/routes/get-many/get-many-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/get-many/get-many-controller.mixin.js +28 -6
- package/src/routes/get-many/get-many-service.interface.js +2 -0
- package/src/{modules → routes}/get-many/get-many.helper.d.ts +2 -2
- package/src/{modules → routes}/get-many/get-many.helper.js +6 -4
- package/src/routes/get-many/get-many.module.d.ts +6 -0
- package/src/{modules → routes}/get-many/get-many.module.js +3 -3
- package/src/routes/get-one/get-one-controller.interface.js +2 -0
- package/src/routes/get-one/get-one-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/get-one/get-one-controller.mixin.js +25 -3
- package/src/routes/get-one/get-one-service.interface.js +2 -0
- package/src/{modules → routes}/get-one/get-one.helper.d.ts +2 -2
- package/src/{modules → routes}/get-one/get-one.helper.js +6 -4
- package/src/routes/get-one/get-one.module.d.ts +6 -0
- package/src/{modules → routes}/get-one/get-one.module.js +3 -3
- package/src/routes/index.d.ts +11 -0
- package/src/routes/index.js +27 -0
- package/src/routes/replace-one/replace-one-controller.interface.js +2 -0
- package/src/routes/replace-one/replace-one-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/replace-one/replace-one-controller.mixin.js +25 -3
- package/src/routes/replace-one/replace-one-service.interface.js +2 -0
- package/src/{modules → routes}/replace-one/replace-one.helper.d.ts +2 -2
- package/src/{modules → routes}/replace-one/replace-one.helper.js +6 -4
- package/src/routes/replace-one/replace-one.module.d.ts +6 -0
- package/src/{modules → routes}/replace-one/replace-one.module.js +3 -3
- package/src/routes/update-many/update-many-controller.interface.js +2 -0
- package/src/routes/update-many/update-many-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/update-many/update-many-controller.mixin.js +25 -3
- package/src/routes/update-many/update-many-service.interface.js +2 -0
- package/src/{modules → routes}/update-many/update-many.helper.d.ts +2 -2
- package/src/{modules → routes}/update-many/update-many.helper.js +6 -4
- package/src/routes/update-many/update-many.module.d.ts +6 -0
- package/src/{modules → routes}/update-many/update-many.module.js +3 -3
- package/src/routes/update-one/update-one-controller.interface.js +2 -0
- package/src/routes/update-one/update-one-controller.mixin.d.ts +6 -0
- package/src/{modules → routes}/update-one/update-one-controller.mixin.js +25 -3
- package/src/routes/update-one/update-one-service.interface.js +2 -0
- package/src/{modules → routes}/update-one/update-one.helper.d.ts +2 -2
- package/src/{modules → routes}/update-one/update-one.helper.js +6 -4
- package/src/routes/update-one/update-one.module.d.ts +6 -0
- package/src/{modules → routes}/update-one/update-one.module.js +3 -3
- package/src/services/{base.service.d.ts → base/base.service.d.ts} +1 -1
- package/src/services/{base.service.js → base/base.service.js} +2 -2
- package/src/services/bcrypt/bcrypt.service.d.ts +5 -0
- package/src/services/bcrypt/bcrypt.service.js +26 -0
- package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.d.ts +11 -0
- package/src/services/dynamic-api-global-state/dynamic-api-global-state.service.js +36 -0
- package/src/services/index.d.ts +3 -1
- package/src/services/index.js +3 -1
- package/src/version.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/builders/route-decorators.builder.d.ts +0 -20
- package/src/modules/create-many/create-many-controller.mixin.d.ts +0 -6
- package/src/modules/create-one/create-one-controller.mixin.d.ts +0 -6
- package/src/modules/create-one/create-one.module.d.ts +0 -6
- package/src/modules/delete-many/delete-many-controller.mixin.d.ts +0 -6
- package/src/modules/delete-many/delete-many.module.d.ts +0 -6
- package/src/modules/delete-one/delete-one-controller.mixin.d.ts +0 -6
- package/src/modules/delete-one/delete-one.module.d.ts +0 -6
- package/src/modules/duplicate-many/duplicate-many-controller.mixin.d.ts +0 -6
- package/src/modules/duplicate-many/duplicate-many.module.d.ts +0 -6
- package/src/modules/duplicate-one/duplicate-one-controller.mixin.d.ts +0 -6
- package/src/modules/duplicate-one/duplicate-one.module.d.ts +0 -6
- package/src/modules/get-many/get-many-controller.mixin.d.ts +0 -6
- package/src/modules/get-many/get-many.module.d.ts +0 -6
- package/src/modules/get-one/get-one-controller.mixin.d.ts +0 -6
- package/src/modules/get-one/get-one.module.d.ts +0 -6
- package/src/modules/replace-one/replace-one-controller.mixin.d.ts +0 -6
- package/src/modules/replace-one/replace-one.module.d.ts +0 -6
- package/src/modules/update-many/update-many-controller.mixin.d.ts +0 -6
- package/src/modules/update-many/update-many.module.d.ts +0 -6
- package/src/modules/update-one/update-one-controller.mixin.d.ts +0 -6
- package/src/modules/update-one/update-one.module.d.ts +0 -6
- /package/src/{modules/create-many/create-many-controller.interface.js → interfaces/decorator-builder.interface.js} +0 -0
- /package/src/{modules/create-many/create-many-service.interface.js → interfaces/dynamic-api-global-state.interface.js} +0 -0
- /package/src/{modules/create-one/create-one-controller.interface.js → interfaces/dynamic-api-policy-handler.interface.js} +0 -0
- /package/src/{modules/create-one/create-one-service.interface.js → interfaces/dynamic-api-route-dtos-bundle.type.js} +0 -0
- /package/src/{modules/delete-many/delete-many-controller.interface.js → interfaces/dynamic-api-route-module.type.js} +0 -0
- /package/src/{modules/delete-many/delete-many-service.interface.js → interfaces/dynamic-api-route-type.type.js} +0 -0
- /package/src/modules/{delete-one/delete-one-controller.interface.js → auth/interfaces/auth-controller.interface.js} +0 -0
- /package/src/modules/{delete-one/delete-one-service.interface.js → auth/interfaces/auth-options.interface.js} +0 -0
- /package/src/modules/{duplicate-many/duplicate-many-controller.interface.js → auth/interfaces/auth-service.interface.js} +0 -0
- /package/src/{modules → routes}/create-many/base-create-many.service.d.ts +0 -0
- /package/src/{modules → routes}/create-many/base-create-many.service.js +0 -0
- /package/src/{modules → routes}/create-many/create-many-controller.interface.d.ts +0 -0
- /package/src/{modules/duplicate-many/duplicate-many-service.interface.js → routes/create-many/create-many-controller.interface.js} +0 -0
- /package/src/{modules → routes}/create-many/create-many-service.interface.d.ts +0 -0
- /package/src/{modules/duplicate-one/duplicate-one-controller.interface.js → routes/create-many/create-many-service.interface.js} +0 -0
- /package/src/{modules → routes}/create-many/index.d.ts +0 -0
- /package/src/{modules → routes}/create-many/index.js +0 -0
- /package/src/{modules → routes}/create-one/base-create-one.service.d.ts +0 -0
- /package/src/{modules → routes}/create-one/base-create-one.service.js +0 -0
- /package/src/{modules → routes}/create-one/create-one-controller.interface.d.ts +0 -0
- /package/src/{modules/duplicate-one/duplicate-one-service.interface.js → routes/create-one/create-one-controller.interface.js} +0 -0
- /package/src/{modules → routes}/create-one/create-one-service.interface.d.ts +0 -0
- /package/src/{modules/get-many/get-many-controller.interface.js → routes/create-one/create-one-service.interface.js} +0 -0
- /package/src/{modules → routes}/create-one/index.d.ts +0 -0
- /package/src/{modules → routes}/create-one/index.js +0 -0
- /package/src/{modules → routes}/delete-many/base-delete-many.service.d.ts +0 -0
- /package/src/{modules → routes}/delete-many/base-delete-many.service.js +0 -0
- /package/src/{modules → routes}/delete-many/delete-many-controller.interface.d.ts +0 -0
- /package/src/{modules/get-many/get-many-service.interface.js → routes/delete-many/delete-many-controller.interface.js} +0 -0
- /package/src/{modules → routes}/delete-many/delete-many-service.interface.d.ts +0 -0
- /package/src/{modules/get-one/get-one-controller.interface.js → routes/delete-many/delete-many-service.interface.js} +0 -0
- /package/src/{modules → routes}/delete-many/delete-many.presenter.d.ts +0 -0
- /package/src/{modules → routes}/delete-many/delete-many.presenter.js +0 -0
- /package/src/{modules → routes}/delete-many/index.d.ts +0 -0
- /package/src/{modules → routes}/delete-many/index.js +0 -0
- /package/src/{modules → routes}/delete-one/base-delete-one.service.d.ts +0 -0
- /package/src/{modules → routes}/delete-one/base-delete-one.service.js +0 -0
- /package/src/{modules → routes}/delete-one/delete-one-controller.interface.d.ts +0 -0
- /package/src/{modules/get-one/get-one-service.interface.js → routes/delete-one/delete-one-controller.interface.js} +0 -0
- /package/src/{modules → routes}/delete-one/delete-one-service.interface.d.ts +0 -0
- /package/src/{modules/replace-one/replace-one-controller.interface.js → routes/delete-one/delete-one-service.interface.js} +0 -0
- /package/src/{modules → routes}/delete-one/delete-one.presenter.d.ts +0 -0
- /package/src/{modules → routes}/delete-one/delete-one.presenter.js +0 -0
- /package/src/{modules → routes}/delete-one/index.d.ts +0 -0
- /package/src/{modules → routes}/delete-one/index.js +0 -0
- /package/src/{modules → routes}/duplicate-many/base-duplicate-many.service.d.ts +0 -0
- /package/src/{modules → routes}/duplicate-many/base-duplicate-many.service.js +0 -0
- /package/src/{modules → routes}/duplicate-many/duplicate-many-controller.interface.d.ts +0 -0
- /package/src/{modules/replace-one/replace-one-service.interface.js → routes/duplicate-many/duplicate-many-controller.interface.js} +0 -0
- /package/src/{modules → routes}/duplicate-many/duplicate-many-service.interface.d.ts +0 -0
- /package/src/{modules/update-many/update-many-controller.interface.js → routes/duplicate-many/duplicate-many-service.interface.js} +0 -0
- /package/src/{modules → routes}/duplicate-many/index.d.ts +0 -0
- /package/src/{modules → routes}/duplicate-many/index.js +0 -0
- /package/src/{modules → routes}/duplicate-one/base-duplicate-one.service.d.ts +0 -0
- /package/src/{modules → routes}/duplicate-one/base-duplicate-one.service.js +0 -0
- /package/src/{modules → routes}/duplicate-one/duplicate-one-controller.interface.d.ts +0 -0
- /package/src/{modules/update-many/update-many-service.interface.js → routes/duplicate-one/duplicate-one-controller.interface.js} +0 -0
- /package/src/{modules → routes}/duplicate-one/duplicate-one-service.interface.d.ts +0 -0
- /package/src/{modules/update-one/update-one-controller.interface.js → routes/duplicate-one/duplicate-one-service.interface.js} +0 -0
- /package/src/{modules → routes}/duplicate-one/index.d.ts +0 -0
- /package/src/{modules → routes}/duplicate-one/index.js +0 -0
- /package/src/{modules → routes}/get-many/base-get-many.service.d.ts +0 -0
- /package/src/{modules → routes}/get-many/base-get-many.service.js +0 -0
- /package/src/{modules → routes}/get-many/get-many-controller.interface.d.ts +0 -0
- /package/src/{modules/update-one/update-one-service.interface.js → routes/get-many/get-many-controller.interface.js} +0 -0
- /package/src/{modules → routes}/get-many/get-many-service.interface.d.ts +0 -0
- /package/src/{modules → routes}/get-many/index.d.ts +0 -0
- /package/src/{modules → routes}/get-many/index.js +0 -0
- /package/src/{modules → routes}/get-one/base-get-one.service.d.ts +0 -0
- /package/src/{modules → routes}/get-one/base-get-one.service.js +0 -0
- /package/src/{modules → routes}/get-one/get-one-controller.interface.d.ts +0 -0
- /package/src/{modules → routes}/get-one/get-one-service.interface.d.ts +0 -0
- /package/src/{modules → routes}/get-one/index.d.ts +0 -0
- /package/src/{modules → routes}/get-one/index.js +0 -0
- /package/src/{modules → routes}/replace-one/base-replace-one.service.d.ts +0 -0
- /package/src/{modules → routes}/replace-one/base-replace-one.service.js +0 -0
- /package/src/{modules → routes}/replace-one/index.d.ts +0 -0
- /package/src/{modules → routes}/replace-one/index.js +0 -0
- /package/src/{modules → routes}/replace-one/replace-one-controller.interface.d.ts +0 -0
- /package/src/{modules → routes}/replace-one/replace-one-service.interface.d.ts +0 -0
- /package/src/{modules → routes}/update-many/base-update-many.service.d.ts +0 -0
- /package/src/{modules → routes}/update-many/base-update-many.service.js +0 -0
- /package/src/{modules → routes}/update-many/index.d.ts +0 -0
- /package/src/{modules → routes}/update-many/index.js +0 -0
- /package/src/{modules → routes}/update-many/update-many-controller.interface.d.ts +0 -0
- /package/src/{modules → routes}/update-many/update-many-service.interface.d.ts +0 -0
- /package/src/{modules → routes}/update-one/base-update-one.service.d.ts +0 -0
- /package/src/{modules → routes}/update-one/base-update-one.service.js +0 -0
- /package/src/{modules → routes}/update-one/index.d.ts +0 -0
- /package/src/{modules → routes}/update-one/index.js +0 -0
- /package/src/{modules → routes}/update-one/update-one-controller.interface.d.ts +0 -0
- /package/src/{modules → routes}/update-one/update-one-service.interface.d.ts +0 -0
|
@@ -15,12 +15,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.GetOneControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const builders_1 = require("../../builders");
|
|
18
|
+
const decorators_1 = require("../../decorators");
|
|
18
19
|
const dtos_1 = require("../../dtos");
|
|
19
20
|
const helpers_1 = require("../../helpers");
|
|
21
|
+
const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
|
|
20
22
|
const mixins_1 = require("../../mixins");
|
|
21
|
-
function GetOneControllerMixin(entity, path, apiTag,
|
|
23
|
+
function GetOneControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
|
|
22
24
|
const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
|
|
23
|
-
const { param: CustomParam, query: CustomQuery, presenter: CustomPresenter, } =
|
|
25
|
+
const { param: CustomParam, query: CustomQuery, 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
|
+
}
|
|
24
36
|
class RouteParam extends (CustomParam ?? dtos_1.EntityParam) {
|
|
25
37
|
}
|
|
26
38
|
if (!CustomParam) {
|
|
@@ -45,7 +57,15 @@ function GetOneControllerMixin(entity, path, apiTag, version, description, DTOs)
|
|
|
45
57
|
writable: false,
|
|
46
58
|
});
|
|
47
59
|
}
|
|
48
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetOne', entity, version, description,
|
|
60
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetOne', entity, version, description, isPublic, {
|
|
61
|
+
param: RouteParam,
|
|
62
|
+
query: RouteQuery,
|
|
63
|
+
body: undefined,
|
|
64
|
+
presenter: RoutePresenter,
|
|
65
|
+
});
|
|
66
|
+
const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
|
|
67
|
+
class GetOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
|
|
68
|
+
}
|
|
49
69
|
class BaseGetOneController {
|
|
50
70
|
constructor(service) {
|
|
51
71
|
this.service = service;
|
|
@@ -57,6 +77,8 @@ function GetOneControllerMixin(entity, path, apiTag, version, description, DTOs)
|
|
|
57
77
|
}
|
|
58
78
|
__decorate([
|
|
59
79
|
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
80
|
+
(0, common_1.UseGuards)(GetOnePoliciesGuard),
|
|
81
|
+
(0, decorators_1.CheckPolicies)((ability) => ability.can(routeType, entity)),
|
|
60
82
|
__param(0, (0, common_1.Param)('id')),
|
|
61
83
|
__metadata("design:type", Function),
|
|
62
84
|
__metadata("design:paramtypes", [String]),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig, DynamicAPIServiceProvider } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { GetOneControllerConstructor } from './get-one-controller.interface';
|
|
5
5
|
declare function createGetOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): DynamicAPIServiceProvider;
|
|
6
|
-
declare function createGetOneController<Entity extends BaseEntity>(entity: Type<Entity>,
|
|
6
|
+
declare function createGetOneController<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): GetOneControllerConstructor<Entity>;
|
|
7
7
|
export { createGetOneController, createGetOneServiceProvider };
|
|
@@ -33,7 +33,7 @@ function createGetOneServiceProvider(entity, version) {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
GetOneService = __decorate([
|
|
36
|
-
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.state.get('connectionName'))),
|
|
37
37
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
38
38
|
], GetOneService);
|
|
39
39
|
Object.defineProperty(GetOneService, 'name', {
|
|
@@ -46,8 +46,9 @@ function createGetOneServiceProvider(entity, version) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
exports.createGetOneServiceProvider = createGetOneServiceProvider;
|
|
49
|
-
function createGetOneController(entity,
|
|
50
|
-
|
|
49
|
+
function createGetOneController(entity, controllerOptions, routeConfig, version, validationPipeOptions) {
|
|
50
|
+
const { path, apiTag } = controllerOptions;
|
|
51
|
+
let GetOneController = class GetOneController extends (0, get_one_controller_mixin_1.GetOneControllerMixin)(entity, controllerOptions, routeConfig, version) {
|
|
51
52
|
constructor(service) {
|
|
52
53
|
super(service);
|
|
53
54
|
this.service = service;
|
|
@@ -56,7 +57,8 @@ function createGetOneController(entity, path, apiTag, version, description, DTOs
|
|
|
56
57
|
GetOneController = __decorate([
|
|
57
58
|
(0, common_1.Controller)({ path, version }),
|
|
58
59
|
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
59
|
-
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions
|
|
60
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions)),
|
|
61
|
+
(0, common_1.UseInterceptors)(common_1.ClassSerializerInterceptor),
|
|
60
62
|
__param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
|
|
61
63
|
__metadata("design:paramtypes", [Object])
|
|
62
64
|
], GetOneController);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule, Provider, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
export declare class GetOneModule {
|
|
5
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions, extraProviders?: Provider[]): DynamicModule;
|
|
6
|
+
}
|
|
@@ -11,14 +11,14 @@ exports.GetOneModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const get_one_helper_1 = require("./get-one.helper");
|
|
13
13
|
let GetOneModule = GetOneModule_1 = class GetOneModule {
|
|
14
|
-
static forFeature(databaseModule, entity,
|
|
15
|
-
const controller = (0, get_one_helper_1.createGetOneController)(entity,
|
|
14
|
+
static forFeature(databaseModule, entity, controllerOptions, routeConfig, version, validationPipeOptions, extraProviders) {
|
|
15
|
+
const controller = (0, get_one_helper_1.createGetOneController)(entity, controllerOptions, routeConfig, version, validationPipeOptions);
|
|
16
16
|
const ServiceProvider = (0, get_one_helper_1.createGetOneServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: GetOneModule_1,
|
|
19
19
|
imports: [databaseModule],
|
|
20
20
|
controllers: [controller],
|
|
21
|
-
providers: [ServiceProvider],
|
|
21
|
+
providers: [...(extraProviders ?? []), ServiceProvider],
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './create-many';
|
|
2
|
+
export * from './create-one';
|
|
3
|
+
export * from './delete-many';
|
|
4
|
+
export * from './delete-one';
|
|
5
|
+
export * from './duplicate-many';
|
|
6
|
+
export * from './duplicate-one';
|
|
7
|
+
export * from './get-many';
|
|
8
|
+
export * from './get-one';
|
|
9
|
+
export * from './replace-one';
|
|
10
|
+
export * from './update-many';
|
|
11
|
+
export * from './update-one';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./create-many"), exports);
|
|
18
|
+
__exportStar(require("./create-one"), exports);
|
|
19
|
+
__exportStar(require("./delete-many"), exports);
|
|
20
|
+
__exportStar(require("./delete-one"), exports);
|
|
21
|
+
__exportStar(require("./duplicate-many"), exports);
|
|
22
|
+
__exportStar(require("./duplicate-one"), exports);
|
|
23
|
+
__exportStar(require("./get-many"), exports);
|
|
24
|
+
__exportStar(require("./get-one"), exports);
|
|
25
|
+
__exportStar(require("./replace-one"), exports);
|
|
26
|
+
__exportStar(require("./update-many"), exports);
|
|
27
|
+
__exportStar(require("./update-one"), exports);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { ReplaceOneControllerConstructor } from './replace-one-controller.interface';
|
|
5
|
+
declare function ReplaceOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: ControllerOptions<Entity>, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }: DynamicAPIRouteConfig<Entity>, version?: string): ReplaceOneControllerConstructor<Entity>;
|
|
6
|
+
export { ReplaceOneControllerMixin };
|
|
@@ -15,12 +15,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.ReplaceOneControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const builders_1 = require("../../builders");
|
|
18
|
+
const decorators_1 = require("../../decorators");
|
|
18
19
|
const dtos_1 = require("../../dtos");
|
|
19
20
|
const helpers_1 = require("../../helpers");
|
|
21
|
+
const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
|
|
20
22
|
const mixins_1 = require("../../mixins");
|
|
21
|
-
function ReplaceOneControllerMixin(entity, path, apiTag,
|
|
23
|
+
function ReplaceOneControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
|
|
22
24
|
const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
|
|
23
|
-
const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } =
|
|
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
|
+
}
|
|
24
36
|
class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity)) {
|
|
25
37
|
}
|
|
26
38
|
if (!CustomBody) {
|
|
@@ -45,7 +57,15 @@ function ReplaceOneControllerMixin(entity, path, apiTag, version, description, D
|
|
|
45
57
|
writable: false,
|
|
46
58
|
});
|
|
47
59
|
}
|
|
48
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('ReplaceOne', entity, version, description,
|
|
60
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('ReplaceOne', entity, version, description, isPublic, {
|
|
61
|
+
param: RouteParam,
|
|
62
|
+
query: undefined,
|
|
63
|
+
body: RouteBody,
|
|
64
|
+
presenter: RoutePresenter,
|
|
65
|
+
});
|
|
66
|
+
const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
|
|
67
|
+
class ReplaceOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
|
|
68
|
+
}
|
|
49
69
|
class BaseReplaceOneController {
|
|
50
70
|
constructor(service) {
|
|
51
71
|
this.service = service;
|
|
@@ -57,6 +77,8 @@ function ReplaceOneControllerMixin(entity, path, apiTag, version, description, D
|
|
|
57
77
|
}
|
|
58
78
|
__decorate([
|
|
59
79
|
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
80
|
+
(0, common_1.UseGuards)(ReplaceOnePoliciesGuard),
|
|
81
|
+
(0, decorators_1.CheckPolicies)((ability) => ability.can(routeType, entity)),
|
|
60
82
|
__param(0, (0, common_1.Param)('id')),
|
|
61
83
|
__param(1, (0, common_1.Body)()),
|
|
62
84
|
__metadata("design:type", Function),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig, DynamicAPIServiceProvider } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { ReplaceOneControllerConstructor } from './replace-one-controller.interface';
|
|
5
5
|
declare function createReplaceOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): DynamicAPIServiceProvider;
|
|
6
|
-
declare function createReplaceOneController<Entity extends BaseEntity>(entity: Type<Entity>,
|
|
6
|
+
declare function createReplaceOneController<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): ReplaceOneControllerConstructor<Entity>;
|
|
7
7
|
export { createReplaceOneController, createReplaceOneServiceProvider };
|
|
@@ -33,7 +33,7 @@ function createReplaceOneServiceProvider(entity, version) {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
ReplaceOneService = __decorate([
|
|
36
|
-
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.state.get('connectionName'))),
|
|
37
37
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
38
38
|
], ReplaceOneService);
|
|
39
39
|
Object.defineProperty(ReplaceOneService, 'name', {
|
|
@@ -46,8 +46,9 @@ function createReplaceOneServiceProvider(entity, version) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
exports.createReplaceOneServiceProvider = createReplaceOneServiceProvider;
|
|
49
|
-
function createReplaceOneController(entity,
|
|
50
|
-
|
|
49
|
+
function createReplaceOneController(entity, controllerOptions, routeConfig, version, validationPipeOptions) {
|
|
50
|
+
const { path, apiTag } = controllerOptions;
|
|
51
|
+
let ReplaceOneController = class ReplaceOneController extends (0, replace_one_controller_mixin_1.ReplaceOneControllerMixin)(entity, controllerOptions, routeConfig, version) {
|
|
51
52
|
constructor(service) {
|
|
52
53
|
super(service);
|
|
53
54
|
this.service = service;
|
|
@@ -56,7 +57,8 @@ function createReplaceOneController(entity, path, apiTag, version, description,
|
|
|
56
57
|
ReplaceOneController = __decorate([
|
|
57
58
|
(0, common_1.Controller)({ path, version }),
|
|
58
59
|
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
59
|
-
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions
|
|
60
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions)),
|
|
61
|
+
(0, common_1.UseInterceptors)(common_1.ClassSerializerInterceptor),
|
|
60
62
|
__param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
|
|
61
63
|
__metadata("design:paramtypes", [Object])
|
|
62
64
|
], ReplaceOneController);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule, Provider, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
export declare class ReplaceOneModule {
|
|
5
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions, extraProviders?: Provider[]): DynamicModule;
|
|
6
|
+
}
|
|
@@ -11,14 +11,14 @@ exports.ReplaceOneModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const replace_one_helper_1 = require("./replace-one.helper");
|
|
13
13
|
let ReplaceOneModule = ReplaceOneModule_1 = class ReplaceOneModule {
|
|
14
|
-
static forFeature(databaseModule, entity,
|
|
15
|
-
const controller = (0, replace_one_helper_1.createReplaceOneController)(entity,
|
|
14
|
+
static forFeature(databaseModule, entity, controllerOptions, routeConfig, version, validationPipeOptions, extraProviders) {
|
|
15
|
+
const controller = (0, replace_one_helper_1.createReplaceOneController)(entity, controllerOptions, routeConfig, version, validationPipeOptions);
|
|
16
16
|
const ServiceProvider = (0, replace_one_helper_1.createReplaceOneServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: ReplaceOneModule_1,
|
|
19
19
|
imports: [databaseModule],
|
|
20
20
|
controllers: [controller],
|
|
21
|
-
providers: [ServiceProvider],
|
|
21
|
+
providers: [...(extraProviders ?? []), ServiceProvider],
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { UpdateManyControllerConstructor } from './update-many-controller.interface';
|
|
5
|
+
declare function UpdateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: ControllerOptions<Entity>, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }: DynamicAPIRouteConfig<Entity>, version?: string): UpdateManyControllerConstructor<Entity>;
|
|
6
|
+
export { UpdateManyControllerMixin };
|
|
@@ -15,11 +15,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.UpdateManyControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const builders_1 = require("../../builders");
|
|
18
|
+
const decorators_1 = require("../../decorators");
|
|
18
19
|
const helpers_1 = require("../../helpers");
|
|
20
|
+
const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
|
|
19
21
|
const mixins_1 = require("../../mixins");
|
|
20
|
-
function UpdateManyControllerMixin(entity, path, apiTag,
|
|
22
|
+
function UpdateManyControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
|
|
21
23
|
const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
|
|
22
|
-
const { body: CustomBody, presenter: CustomPresenter, } =
|
|
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
|
+
}
|
|
23
35
|
class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
24
36
|
}
|
|
25
37
|
if (!CustomBody) {
|
|
@@ -36,7 +48,15 @@ function UpdateManyControllerMixin(entity, path, apiTag, version, description, D
|
|
|
36
48
|
writable: false,
|
|
37
49
|
});
|
|
38
50
|
}
|
|
39
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateMany', entity, version, description,
|
|
51
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateMany', entity, version, description, isPublic, {
|
|
52
|
+
param: undefined,
|
|
53
|
+
query: undefined,
|
|
54
|
+
body: RouteBody,
|
|
55
|
+
presenter: RoutePresenter,
|
|
56
|
+
});
|
|
57
|
+
const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
|
|
58
|
+
class UpdateManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
|
|
59
|
+
}
|
|
40
60
|
class BaseUpdateManyController {
|
|
41
61
|
constructor(service) {
|
|
42
62
|
this.service = service;
|
|
@@ -48,6 +68,8 @@ function UpdateManyControllerMixin(entity, path, apiTag, version, description, D
|
|
|
48
68
|
}
|
|
49
69
|
__decorate([
|
|
50
70
|
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
71
|
+
(0, common_1.UseGuards)(UpdateManyPoliciesGuard),
|
|
72
|
+
(0, decorators_1.CheckPolicies)((ability) => ability.can(routeType, entity)),
|
|
51
73
|
__param(0, (0, common_1.Query)('ids')),
|
|
52
74
|
__param(1, (0, common_1.Body)()),
|
|
53
75
|
__metadata("design:type", Function),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig, DynamicAPIServiceProvider } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { UpdateManyControllerConstructor } from './update-many-controller.interface';
|
|
5
5
|
declare function createUpdateManyServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): DynamicAPIServiceProvider;
|
|
6
|
-
declare function createUpdateManyController<Entity extends BaseEntity>(entity: Type<Entity>,
|
|
6
|
+
declare function createUpdateManyController<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): UpdateManyControllerConstructor<Entity>;
|
|
7
7
|
export { createUpdateManyController, createUpdateManyServiceProvider };
|
|
@@ -33,7 +33,7 @@ function createUpdateManyServiceProvider(entity, version) {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
UpdateManyService = __decorate([
|
|
36
|
-
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.state.get('connectionName'))),
|
|
37
37
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
38
38
|
], UpdateManyService);
|
|
39
39
|
Object.defineProperty(UpdateManyService, 'name', {
|
|
@@ -46,8 +46,9 @@ function createUpdateManyServiceProvider(entity, version) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
exports.createUpdateManyServiceProvider = createUpdateManyServiceProvider;
|
|
49
|
-
function createUpdateManyController(entity,
|
|
50
|
-
|
|
49
|
+
function createUpdateManyController(entity, controllerOptions, routeConfig, version, validationPipeOptions) {
|
|
50
|
+
const { path, apiTag } = controllerOptions;
|
|
51
|
+
let UpdateManyController = class UpdateManyController extends (0, update_many_controller_mixin_1.UpdateManyControllerMixin)(entity, controllerOptions, routeConfig, version) {
|
|
51
52
|
constructor(service) {
|
|
52
53
|
super(service);
|
|
53
54
|
this.service = service;
|
|
@@ -56,7 +57,8 @@ function createUpdateManyController(entity, path, apiTag, version, description,
|
|
|
56
57
|
UpdateManyController = __decorate([
|
|
57
58
|
(0, common_1.Controller)({ path, version }),
|
|
58
59
|
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
59
|
-
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions
|
|
60
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions)),
|
|
61
|
+
(0, common_1.UseInterceptors)(common_1.ClassSerializerInterceptor),
|
|
60
62
|
__param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
|
|
61
63
|
__metadata("design:paramtypes", [Object])
|
|
62
64
|
], UpdateManyController);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule, Provider, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
export declare class UpdateManyModule {
|
|
5
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions, extraProviders?: Provider[]): DynamicModule;
|
|
6
|
+
}
|
|
@@ -11,14 +11,14 @@ exports.UpdateManyModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const update_many_helper_1 = require("./update-many.helper");
|
|
13
13
|
let UpdateManyModule = UpdateManyModule_1 = class UpdateManyModule {
|
|
14
|
-
static forFeature(databaseModule, entity,
|
|
15
|
-
const controller = (0, update_many_helper_1.createUpdateManyController)(entity,
|
|
14
|
+
static forFeature(databaseModule, entity, controllerOptions, routeConfig, version, validationPipeOptions, extraProviders) {
|
|
15
|
+
const controller = (0, update_many_helper_1.createUpdateManyController)(entity, controllerOptions, routeConfig, version, validationPipeOptions);
|
|
16
16
|
const ServiceProvider = (0, update_many_helper_1.createUpdateManyServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: UpdateManyModule_1,
|
|
19
19
|
imports: [databaseModule],
|
|
20
20
|
controllers: [controller],
|
|
21
|
-
providers: [ServiceProvider],
|
|
21
|
+
providers: [...(extraProviders ?? []), ServiceProvider],
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { UpdateOneControllerConstructor } from './update-one-controller.interface';
|
|
5
|
+
declare function UpdateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: ControllerOptions<Entity>, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }: DynamicAPIRouteConfig<Entity>, version?: string): UpdateOneControllerConstructor<Entity>;
|
|
6
|
+
export { UpdateOneControllerMixin };
|
|
@@ -15,12 +15,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.UpdateOneControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const builders_1 = require("../../builders");
|
|
18
|
+
const decorators_1 = require("../../decorators");
|
|
18
19
|
const dtos_1 = require("../../dtos");
|
|
19
20
|
const helpers_1 = require("../../helpers");
|
|
21
|
+
const controller_ability_predicates_helper_1 = require("../../helpers/controller-ability-predicates.helper");
|
|
20
22
|
const mixins_1 = require("../../mixins");
|
|
21
|
-
function UpdateOneControllerMixin(entity, path, apiTag,
|
|
23
|
+
function UpdateOneControllerMixin(entity, { path, apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, description, dTOs, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, }, version) {
|
|
22
24
|
const displayedName = (0, helpers_1.pascalCase)(apiTag) ?? entity.name;
|
|
23
|
-
const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } =
|
|
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
|
+
}
|
|
24
36
|
class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
25
37
|
}
|
|
26
38
|
if (!CustomBody) {
|
|
@@ -45,7 +57,15 @@ function UpdateOneControllerMixin(entity, path, apiTag, version, description, DT
|
|
|
45
57
|
writable: false,
|
|
46
58
|
});
|
|
47
59
|
}
|
|
48
|
-
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateOne', entity, version, description,
|
|
60
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('UpdateOne', entity, version, description, isPublic, {
|
|
61
|
+
param: RouteParam,
|
|
62
|
+
query: undefined,
|
|
63
|
+
body: RouteBody,
|
|
64
|
+
presenter: RoutePresenter,
|
|
65
|
+
});
|
|
66
|
+
const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
|
|
67
|
+
class UpdateOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, version, abilityPredicate) {
|
|
68
|
+
}
|
|
49
69
|
class BaseUpdateOneController {
|
|
50
70
|
constructor(service) {
|
|
51
71
|
this.service = service;
|
|
@@ -57,6 +77,8 @@ function UpdateOneControllerMixin(entity, path, apiTag, version, description, DT
|
|
|
57
77
|
}
|
|
58
78
|
__decorate([
|
|
59
79
|
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
80
|
+
(0, common_1.UseGuards)(UpdateOnePoliciesGuard),
|
|
81
|
+
(0, decorators_1.CheckPolicies)((ability) => ability.can(routeType, entity)),
|
|
60
82
|
__param(0, (0, common_1.Param)('id')),
|
|
61
83
|
__param(1, (0, common_1.Body)()),
|
|
62
84
|
__metadata("design:type", Function),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig, DynamicAPIServiceProvider } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { UpdateOneControllerConstructor } from './update-one-controller.interface';
|
|
5
5
|
declare function createUpdateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>, version: string | undefined): DynamicAPIServiceProvider;
|
|
6
|
-
declare function createUpdateOneController<Entity extends BaseEntity>(entity: Type<Entity>,
|
|
6
|
+
declare function createUpdateOneController<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): UpdateOneControllerConstructor<Entity>;
|
|
7
7
|
export { createUpdateOneController, createUpdateOneServiceProvider };
|
|
@@ -33,7 +33,7 @@ function createUpdateOneServiceProvider(entity, version) {
|
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
UpdateOneService = __decorate([
|
|
36
|
-
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.state.get('connectionName'))),
|
|
37
37
|
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
38
38
|
], UpdateOneService);
|
|
39
39
|
Object.defineProperty(UpdateOneService, 'name', {
|
|
@@ -46,8 +46,9 @@ function createUpdateOneServiceProvider(entity, version) {
|
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
48
|
exports.createUpdateOneServiceProvider = createUpdateOneServiceProvider;
|
|
49
|
-
function createUpdateOneController(entity,
|
|
50
|
-
|
|
49
|
+
function createUpdateOneController(entity, controllerOptions, routeConfig, version, validationPipeOptions) {
|
|
50
|
+
const { path, apiTag } = controllerOptions;
|
|
51
|
+
let UpdateOneController = class UpdateOneController extends (0, update_one_controller_mixin_1.UpdateOneControllerMixin)(entity, controllerOptions, routeConfig, version) {
|
|
51
52
|
constructor(service) {
|
|
52
53
|
super(service);
|
|
53
54
|
this.service = service;
|
|
@@ -56,7 +57,8 @@ function createUpdateOneController(entity, path, apiTag, version, description, D
|
|
|
56
57
|
UpdateOneController = __decorate([
|
|
57
58
|
(0, common_1.Controller)({ path, version }),
|
|
58
59
|
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
59
|
-
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions
|
|
60
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions)),
|
|
61
|
+
(0, common_1.UseInterceptors)(common_1.ClassSerializerInterceptor),
|
|
60
62
|
__param(0, (0, common_1.Inject)(provideServiceName(entity.name, version))),
|
|
61
63
|
__metadata("design:paramtypes", [Object])
|
|
62
64
|
], UpdateOneController);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule, Provider, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
export declare class UpdateOneModule {
|
|
5
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, controllerOptions: ControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions, extraProviders?: Provider[]): DynamicModule;
|
|
6
|
+
}
|
|
@@ -11,14 +11,14 @@ exports.UpdateOneModule = void 0;
|
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
12
|
const update_one_helper_1 = require("./update-one.helper");
|
|
13
13
|
let UpdateOneModule = UpdateOneModule_1 = class UpdateOneModule {
|
|
14
|
-
static forFeature(databaseModule, entity,
|
|
15
|
-
const controller = (0, update_one_helper_1.createUpdateOneController)(entity,
|
|
14
|
+
static forFeature(databaseModule, entity, controllerOptions, routeConfig, version, validationPipeOptions, extraProviders) {
|
|
15
|
+
const controller = (0, update_one_helper_1.createUpdateOneController)(entity, controllerOptions, routeConfig, version, validationPipeOptions);
|
|
16
16
|
const ServiceProvider = (0, update_one_helper_1.createUpdateOneServiceProvider)(entity, version);
|
|
17
17
|
return {
|
|
18
18
|
module: UpdateOneModule_1,
|
|
19
19
|
imports: [databaseModule],
|
|
20
20
|
controllers: [controller],
|
|
21
|
-
providers: [ServiceProvider],
|
|
21
|
+
providers: [...(extraProviders ?? []), ServiceProvider],
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
};
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
/// <reference types="mongoose/types/inferschematype" />
|
|
25
25
|
import { Type } from '@nestjs/common';
|
|
26
26
|
import { Model } from 'mongoose';
|
|
27
|
-
import { BaseEntity } from '
|
|
27
|
+
import { BaseEntity } from '../../models';
|
|
28
28
|
export declare abstract class BaseService<Entity extends BaseEntity> {
|
|
29
29
|
protected readonly model: Model<Entity>;
|
|
30
30
|
protected readonly entity: Type<Entity>;
|
|
@@ -11,9 +11,9 @@ class BaseService {
|
|
|
11
11
|
return Object.getOwnPropertyNames(this.model.schema.paths).includes('deletedAt');
|
|
12
12
|
}
|
|
13
13
|
buildInstance(document) {
|
|
14
|
-
const { _id, __v, ...rest } = document;
|
|
14
|
+
const { _id, id, __v, ...rest } = document;
|
|
15
15
|
return (0, builder_pattern_1.Builder)(this.entity, rest)
|
|
16
|
-
.id(_id
|
|
16
|
+
.id(_id?.toString() ?? id)
|
|
17
17
|
.build();
|
|
18
18
|
}
|
|
19
19
|
handleDuplicateKeyError(error) {
|