mongodb-dynamic-api 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/LICENSE +21 -0
- package/README.md +190 -0
- package/index.d.ts +1 -0
- package/index.js +17 -0
- package/package.json +119 -0
- package/src/builders/index.d.ts +1 -0
- package/src/builders/index.js +17 -0
- package/src/builders/route-decorators.builder.d.ts +18 -0
- package/src/builders/route-decorators.builder.js +76 -0
- package/src/decorators/index.d.ts +1 -0
- package/src/decorators/index.js +17 -0
- package/src/decorators/schema-options.decorator.d.ts +4 -0
- package/src/decorators/schema-options.decorator.js +11 -0
- package/src/dtos/entity.param.d.ts +4 -0
- package/src/dtos/entity.param.js +26 -0
- package/src/dtos/entity.query.d.ts +2 -0
- package/src/dtos/entity.query.js +6 -0
- package/src/dtos/index.d.ts +2 -0
- package/src/dtos/index.js +18 -0
- package/src/dynamic-api.module.d.ts +8 -0
- package/src/dynamic-api.module.js +101 -0
- package/src/helpers/config.helper.d.ts +61 -0
- package/src/helpers/config.helper.js +95 -0
- package/src/helpers/index.d.ts +2 -0
- package/src/helpers/index.js +18 -0
- package/src/helpers/route-decorators.helper.d.ts +4 -0
- package/src/helpers/route-decorators.helper.js +8 -0
- package/src/index.d.ts +10 -0
- package/src/index.js +26 -0
- package/src/interfaces/dynamic-api-options.interface.d.ts +15 -0
- package/src/interfaces/dynamic-api-options.interface.js +2 -0
- package/src/interfaces/dynamic-api-schema-options.interface.d.ts +43 -0
- package/src/interfaces/dynamic-api-schema-options.interface.js +2 -0
- package/src/interfaces/entity-mappers.interface.d.ts +8 -0
- package/src/interfaces/entity-mappers.interface.js +2 -0
- package/src/interfaces/index.d.ts +6 -0
- package/src/interfaces/index.js +22 -0
- package/src/interfaces/maybe-promise.type.d.ts +2 -0
- package/src/interfaces/maybe-promise.type.js +2 -0
- package/src/interfaces/route-config.interface.d.ts +17 -0
- package/src/interfaces/route-config.interface.js +2 -0
- package/src/interfaces/service-provider.interface.d.ts +6 -0
- package/src/interfaces/service-provider.interface.js +2 -0
- package/src/mixins/entity-body.mixin.d.ts +16 -0
- package/src/mixins/entity-body.mixin.js +24 -0
- package/src/mixins/entity-presenter.mixin.d.ts +15 -0
- package/src/mixins/entity-presenter.mixin.js +10 -0
- package/src/mixins/index.d.ts +2 -0
- package/src/mixins/index.js +18 -0
- package/src/models/base-entity.model.d.ts +32 -0
- package/src/models/base-entity.model.js +40 -0
- package/src/models/index.d.ts +2 -0
- package/src/models/index.js +18 -0
- package/src/models/soft-deletable-entity.model.d.ts +5 -0
- package/src/models/soft-deletable-entity.model.js +29 -0
- package/src/modules/create-many/base-create-many.service.d.ts +33 -0
- package/src/modules/create-many/base-create-many.service.js +22 -0
- package/src/modules/create-many/create-many-controller.interface.d.ts +9 -0
- package/src/modules/create-many/create-many-controller.interface.js +2 -0
- package/src/modules/create-many/create-many-controller.mixin.d.ts +6 -0
- package/src/modules/create-many/create-many-controller.mixin.js +81 -0
- package/src/modules/create-many/create-many-service.interface.d.ts +5 -0
- package/src/modules/create-many/create-many-service.interface.js +2 -0
- package/src/modules/create-many/create-many.helper.d.ts +7 -0
- package/src/modules/create-many/create-many.helper.js +68 -0
- package/src/modules/create-many/create-many.module.d.ts +6 -0
- package/src/modules/create-many/create-many.module.js +28 -0
- package/src/modules/create-many/index.d.ts +6 -0
- package/src/modules/create-many/index.js +22 -0
- package/src/modules/create-one/base-create-one.service.d.ts +33 -0
- package/src/modules/create-one/base-create-one.service.js +22 -0
- package/src/modules/create-one/create-one-controller.interface.d.ts +7 -0
- package/src/modules/create-one/create-one-controller.interface.js +2 -0
- package/src/modules/create-one/create-one-controller.mixin.d.ts +6 -0
- package/src/modules/create-one/create-one-controller.mixin.js +62 -0
- package/src/modules/create-one/create-one-service.interface.d.ts +5 -0
- package/src/modules/create-one/create-one-service.interface.js +2 -0
- package/src/modules/create-one/create-one.helper.d.ts +7 -0
- package/src/modules/create-one/create-one.helper.js +68 -0
- package/src/modules/create-one/create-one.module.d.ts +6 -0
- package/src/modules/create-one/create-one.module.js +28 -0
- package/src/modules/create-one/index.d.ts +6 -0
- package/src/modules/create-one/index.js +22 -0
- package/src/modules/delete-one/base-delete-one.service.d.ts +34 -0
- package/src/modules/delete-one/base-delete-one.service.js +29 -0
- package/src/modules/delete-one/delete-one-controller.interface.d.ts +7 -0
- package/src/modules/delete-one/delete-one-controller.interface.js +2 -0
- package/src/modules/delete-one/delete-one-controller.mixin.d.ts +6 -0
- package/src/modules/delete-one/delete-one-controller.mixin.js +63 -0
- package/src/modules/delete-one/delete-one-service.interface.d.ts +8 -0
- package/src/modules/delete-one/delete-one-service.interface.js +2 -0
- package/src/modules/delete-one/delete-one.helper.d.ts +7 -0
- package/src/modules/delete-one/delete-one.helper.js +68 -0
- package/src/modules/delete-one/delete-one.module.d.ts +6 -0
- package/src/modules/delete-one/delete-one.module.js +28 -0
- package/src/modules/delete-one/delete-one.presenter.d.ts +3 -0
- package/src/modules/delete-one/delete-one.presenter.js +20 -0
- package/src/modules/delete-one/index.d.ts +7 -0
- package/src/modules/delete-one/index.js +23 -0
- package/src/modules/duplicate-one/base-duplicate-one.service.d.ts +33 -0
- package/src/modules/duplicate-one/base-duplicate-one.service.js +41 -0
- package/src/modules/duplicate-one/duplicate-one-controller.interface.d.ts +7 -0
- package/src/modules/duplicate-one/duplicate-one-controller.interface.js +2 -0
- package/src/modules/duplicate-one/duplicate-one-controller.mixin.d.ts +6 -0
- package/src/modules/duplicate-one/duplicate-one-controller.mixin.js +72 -0
- package/src/modules/duplicate-one/duplicate-one-service.interface.d.ts +5 -0
- package/src/modules/duplicate-one/duplicate-one-service.interface.js +2 -0
- package/src/modules/duplicate-one/duplicate-one.helper.d.ts +7 -0
- package/src/modules/duplicate-one/duplicate-one.helper.js +68 -0
- package/src/modules/duplicate-one/duplicate-one.module.d.ts +6 -0
- package/src/modules/duplicate-one/duplicate-one.module.js +28 -0
- package/src/modules/duplicate-one/index.d.ts +6 -0
- package/src/modules/duplicate-one/index.js +22 -0
- package/src/modules/get-many/base-get-many.service.d.ts +33 -0
- package/src/modules/get-many/base-get-many.service.js +21 -0
- package/src/modules/get-many/get-many-controller.interface.d.ts +7 -0
- package/src/modules/get-many/get-many-controller.interface.js +2 -0
- package/src/modules/get-many/get-many-controller.mixin.d.ts +6 -0
- package/src/modules/get-many/get-many-controller.mixin.js +63 -0
- package/src/modules/get-many/get-many-service.interface.d.ts +5 -0
- package/src/modules/get-many/get-many-service.interface.js +2 -0
- package/src/modules/get-many/get-many.helper.d.ts +7 -0
- package/src/modules/get-many/get-many.helper.js +68 -0
- package/src/modules/get-many/get-many.module.d.ts +6 -0
- package/src/modules/get-many/get-many.module.js +28 -0
- package/src/modules/get-many/index.d.ts +6 -0
- package/src/modules/get-many/index.js +22 -0
- package/src/modules/get-one/base-get-one.service.d.ts +33 -0
- package/src/modules/get-one/base-get-one.service.js +24 -0
- package/src/modules/get-one/get-one-controller.interface.d.ts +7 -0
- package/src/modules/get-one/get-one-controller.interface.js +2 -0
- package/src/modules/get-one/get-one-controller.mixin.d.ts +6 -0
- package/src/modules/get-one/get-one-controller.mixin.js +71 -0
- package/src/modules/get-one/get-one-service.interface.d.ts +5 -0
- package/src/modules/get-one/get-one-service.interface.js +2 -0
- package/src/modules/get-one/get-one.helper.d.ts +7 -0
- package/src/modules/get-one/get-one.helper.js +68 -0
- package/src/modules/get-one/get-one.module.d.ts +6 -0
- package/src/modules/get-one/get-one.module.js +28 -0
- package/src/modules/get-one/index.d.ts +6 -0
- package/src/modules/get-one/index.js +22 -0
- package/src/modules/index.d.ts +8 -0
- package/src/modules/index.js +24 -0
- package/src/modules/replace-one/base-replace-one.service.d.ts +33 -0
- package/src/modules/replace-one/base-replace-one.service.js +33 -0
- package/src/modules/replace-one/index.d.ts +6 -0
- package/src/modules/replace-one/index.js +22 -0
- package/src/modules/replace-one/replace-one-controller.interface.d.ts +7 -0
- package/src/modules/replace-one/replace-one-controller.interface.js +2 -0
- package/src/modules/replace-one/replace-one-controller.mixin.d.ts +6 -0
- package/src/modules/replace-one/replace-one-controller.mixin.js +72 -0
- package/src/modules/replace-one/replace-one-service.interface.d.ts +5 -0
- package/src/modules/replace-one/replace-one-service.interface.js +2 -0
- package/src/modules/replace-one/replace-one.helper.d.ts +7 -0
- package/src/modules/replace-one/replace-one.helper.js +68 -0
- package/src/modules/replace-one/replace-one.module.d.ts +6 -0
- package/src/modules/replace-one/replace-one.module.js +28 -0
- package/src/modules/update-one/base-update-one.service.d.ts +33 -0
- package/src/modules/update-one/base-update-one.service.js +30 -0
- package/src/modules/update-one/index.d.ts +6 -0
- package/src/modules/update-one/index.js +22 -0
- package/src/modules/update-one/update-one-controller.interface.d.ts +7 -0
- package/src/modules/update-one/update-one-controller.interface.js +2 -0
- package/src/modules/update-one/update-one-controller.mixin.d.ts +6 -0
- package/src/modules/update-one/update-one-controller.mixin.js +72 -0
- package/src/modules/update-one/update-one-service.interface.d.ts +5 -0
- package/src/modules/update-one/update-one-service.interface.js +2 -0
- package/src/modules/update-one/update-one.helper.d.ts +7 -0
- package/src/modules/update-one/update-one.helper.js +68 -0
- package/src/modules/update-one/update-one.module.d.ts +6 -0
- package/src/modules/update-one/update-one.module.js +28 -0
- package/src/services/base.service.d.ts +36 -0
- package/src/services/base.service.js +33 -0
- package/src/services/index.d.ts +1 -0
- package/src/services/index.js +17 -0
- package/src/version.json +3 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DuplicateOneControllerMixin = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const builders_1 = require("../../builders");
|
|
18
|
+
const dtos_1 = require("../../dtos");
|
|
19
|
+
const helpers_1 = require("../../helpers");
|
|
20
|
+
const mixins_1 = require("../../mixins");
|
|
21
|
+
function DuplicateOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
|
|
22
|
+
const displayedName = apiTag ?? entity.name;
|
|
23
|
+
const { body: CustomBody, param: CustomParam, presenter: CustomPresenter, } = DTOs ?? {};
|
|
24
|
+
class RouteBody extends (CustomBody ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
25
|
+
}
|
|
26
|
+
if (!CustomBody) {
|
|
27
|
+
Object.defineProperty(RouteBody, 'name', {
|
|
28
|
+
value: `DuplicateOne${displayedName}Dto`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
class RouteParam extends (CustomParam ?? dtos_1.EntityParam) {
|
|
33
|
+
}
|
|
34
|
+
if (!CustomParam) {
|
|
35
|
+
Object.defineProperty(RouteParam, 'name', {
|
|
36
|
+
value: `DuplicateOne${displayedName}Param`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
class RoutePresenter extends (CustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
41
|
+
}
|
|
42
|
+
if (!CustomPresenter) {
|
|
43
|
+
Object.defineProperty(RoutePresenter, 'name', {
|
|
44
|
+
value: `${displayedName}Presenter`,
|
|
45
|
+
writable: false,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DuplicateOne', entity, description, RouteParam, undefined, RouteBody, RoutePresenter);
|
|
49
|
+
class BaseDuplicateOneController {
|
|
50
|
+
constructor(service) {
|
|
51
|
+
this.service = service;
|
|
52
|
+
this.entity = entity;
|
|
53
|
+
}
|
|
54
|
+
async duplicateOne(id, body) {
|
|
55
|
+
return this.service.duplicateOne(id, body);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
60
|
+
__param(0, (0, common_1.Param)('id')),
|
|
61
|
+
__param(1, (0, common_1.Body)()),
|
|
62
|
+
__metadata("design:type", Function),
|
|
63
|
+
__metadata("design:paramtypes", [String, RouteBody]),
|
|
64
|
+
__metadata("design:returntype", Promise)
|
|
65
|
+
], BaseDuplicateOneController.prototype, "duplicateOne", null);
|
|
66
|
+
Object.defineProperty(BaseDuplicateOneController, 'name', {
|
|
67
|
+
value: `DuplicateOne${entity.name}Controller`,
|
|
68
|
+
writable: false,
|
|
69
|
+
});
|
|
70
|
+
return BaseDuplicateOneController;
|
|
71
|
+
}
|
|
72
|
+
exports.DuplicateOneControllerMixin = DuplicateOneControllerMixin;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { DTOsBundle, ServiceProvider } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { DuplicateOneControllerConstructor } from './duplicate-one-controller.interface';
|
|
5
|
+
declare function createDuplicateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
|
|
6
|
+
declare function createDuplicateOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): DuplicateOneControllerConstructor<Entity>;
|
|
7
|
+
export { createDuplicateOneController, createDuplicateOneServiceProvider };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createDuplicateOneServiceProvider = exports.createDuplicateOneController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
19
|
+
const mongoose_2 = require("mongoose");
|
|
20
|
+
const dynamic_api_module_1 = require("../../dynamic-api.module");
|
|
21
|
+
const base_duplicate_one_service_1 = require("./base-duplicate-one.service");
|
|
22
|
+
const duplicate_one_controller_mixin_1 = require("./duplicate-one-controller.mixin");
|
|
23
|
+
function provideServiceName(entityName) {
|
|
24
|
+
return `DuplicateOne${entityName}Service`;
|
|
25
|
+
}
|
|
26
|
+
function createDuplicateOneServiceProvider(entity) {
|
|
27
|
+
let DuplicateOneService = class DuplicateOneService extends base_duplicate_one_service_1.BaseDuplicateOneService {
|
|
28
|
+
constructor(model) {
|
|
29
|
+
super(model);
|
|
30
|
+
this.model = model;
|
|
31
|
+
this.entity = entity;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
DuplicateOneService = __decorate([
|
|
35
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
37
|
+
], DuplicateOneService);
|
|
38
|
+
Object.defineProperty(DuplicateOneService, 'name', {
|
|
39
|
+
value: provideServiceName(entity.name),
|
|
40
|
+
writable: false,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
provide: provideServiceName(entity.name),
|
|
44
|
+
useClass: DuplicateOneService,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
exports.createDuplicateOneServiceProvider = createDuplicateOneServiceProvider;
|
|
48
|
+
function createDuplicateOneController(entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
|
|
49
|
+
let DuplicateOneController = class DuplicateOneController extends (0, duplicate_one_controller_mixin_1.DuplicateOneControllerMixin)(entity, path, apiTag, version, description, DTOs) {
|
|
50
|
+
constructor(service) {
|
|
51
|
+
super(service);
|
|
52
|
+
this.service = service;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
DuplicateOneController = __decorate([
|
|
56
|
+
(0, common_1.Controller)({ path, version }),
|
|
57
|
+
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
58
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
|
|
59
|
+
__param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
|
|
60
|
+
__metadata("design:paramtypes", [Object])
|
|
61
|
+
], DuplicateOneController);
|
|
62
|
+
Object.defineProperty(DuplicateOneController, 'name', {
|
|
63
|
+
value: `DuplicateOne${entity.name}Controller`,
|
|
64
|
+
writable: false,
|
|
65
|
+
});
|
|
66
|
+
return DuplicateOneController;
|
|
67
|
+
}
|
|
68
|
+
exports.createDuplicateOneController = createDuplicateOneController;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, RouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
export declare class DuplicateOneModule {
|
|
5
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var DuplicateOneModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.DuplicateOneModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const duplicate_one_helper_1 = require("./duplicate-one.helper");
|
|
13
|
+
let DuplicateOneModule = DuplicateOneModule_1 = class DuplicateOneModule {
|
|
14
|
+
static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
|
|
15
|
+
const controller = (0, duplicate_one_helper_1.createDuplicateOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
|
|
16
|
+
const ServiceProvider = (0, duplicate_one_helper_1.createDuplicateOneServiceProvider)(entity);
|
|
17
|
+
return {
|
|
18
|
+
module: DuplicateOneModule_1,
|
|
19
|
+
imports: [databaseModule],
|
|
20
|
+
controllers: [controller],
|
|
21
|
+
providers: [ServiceProvider],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.DuplicateOneModule = DuplicateOneModule;
|
|
26
|
+
exports.DuplicateOneModule = DuplicateOneModule = DuplicateOneModule_1 = __decorate([
|
|
27
|
+
(0, common_1.Module)({})
|
|
28
|
+
], DuplicateOneModule);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './base-duplicate-one.service';
|
|
2
|
+
export * from './duplicate-one.helper';
|
|
3
|
+
export * from './duplicate-one.module';
|
|
4
|
+
export * from './duplicate-one-controller.interface';
|
|
5
|
+
export * from './duplicate-one-controller.mixin';
|
|
6
|
+
export * from './duplicate-one-service.interface';
|
|
@@ -0,0 +1,22 @@
|
|
|
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("./base-duplicate-one.service"), exports);
|
|
18
|
+
__exportStar(require("./duplicate-one.helper"), exports);
|
|
19
|
+
__exportStar(require("./duplicate-one.module"), exports);
|
|
20
|
+
__exportStar(require("./duplicate-one-controller.interface"), exports);
|
|
21
|
+
__exportStar(require("./duplicate-one-controller.mixin"), exports);
|
|
22
|
+
__exportStar(require("./duplicate-one-service.interface"), exports);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
import { Model } from 'mongoose';
|
|
26
|
+
import { BaseEntity } from '../../models';
|
|
27
|
+
import { BaseService } from '../../services';
|
|
28
|
+
import { GetManyService } from './get-many-service.interface';
|
|
29
|
+
export declare abstract class BaseGetManyService<Entity extends BaseEntity> extends BaseService<Entity> implements GetManyService<Entity> {
|
|
30
|
+
protected readonly model: Model<Entity>;
|
|
31
|
+
protected constructor(model: Model<Entity>);
|
|
32
|
+
getMany(query?: object): Promise<Entity[]>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseGetManyService = void 0;
|
|
4
|
+
const services_1 = require("../../services");
|
|
5
|
+
class BaseGetManyService extends services_1.BaseService {
|
|
6
|
+
constructor(model) {
|
|
7
|
+
super(model);
|
|
8
|
+
this.model = model;
|
|
9
|
+
}
|
|
10
|
+
async getMany(query) {
|
|
11
|
+
const documents = await this.model
|
|
12
|
+
.find({
|
|
13
|
+
...(query ?? {}),
|
|
14
|
+
...(this.isSoftDeletable ? { isDeleted: false } : {}),
|
|
15
|
+
})
|
|
16
|
+
.lean()
|
|
17
|
+
.exec();
|
|
18
|
+
return documents.map((d) => this.buildInstance(d));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.BaseGetManyService = BaseGetManyService;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseEntity } from '../../models';
|
|
2
|
+
import { GetManyService } from './get-many-service.interface';
|
|
3
|
+
interface GetManyController<Entity extends BaseEntity> {
|
|
4
|
+
getMany(query?: object): Promise<Entity[]>;
|
|
5
|
+
}
|
|
6
|
+
type GetManyControllerConstructor<Entity extends BaseEntity> = new (service: GetManyService<Entity>) => GetManyController<Entity>;
|
|
7
|
+
export type { GetManyController, GetManyControllerConstructor };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { DTOsBundle } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { GetManyControllerConstructor } from './get-many-controller.interface';
|
|
5
|
+
declare function GetManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): GetManyControllerConstructor<Entity>;
|
|
6
|
+
export { GetManyControllerMixin };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.GetManyControllerMixin = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const builders_1 = require("../../builders");
|
|
18
|
+
const dtos_1 = require("../../dtos");
|
|
19
|
+
const helpers_1 = require("../../helpers");
|
|
20
|
+
const mixins_1 = require("../../mixins");
|
|
21
|
+
function GetManyControllerMixin(entity, path, apiTag, version, description, DTOs) {
|
|
22
|
+
const displayedName = apiTag ?? entity.name;
|
|
23
|
+
const { query: CustomQuery, presenter: CustomPresenter } = DTOs ?? {};
|
|
24
|
+
class RouteQuery extends (CustomQuery ?? dtos_1.EntityQuery) {
|
|
25
|
+
}
|
|
26
|
+
if (!CustomQuery) {
|
|
27
|
+
Object.defineProperty(RouteQuery, 'name', {
|
|
28
|
+
value: `GetMany${displayedName}Query`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
class RoutePresenter extends (CustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
33
|
+
}
|
|
34
|
+
if (!CustomPresenter) {
|
|
35
|
+
Object.defineProperty(RoutePresenter, 'name', {
|
|
36
|
+
value: `${displayedName}Presenter`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('GetMany', entity, description, undefined, RouteQuery, undefined, RoutePresenter);
|
|
41
|
+
class BaseGetManyController {
|
|
42
|
+
constructor(service) {
|
|
43
|
+
this.service = service;
|
|
44
|
+
this.entity = entity;
|
|
45
|
+
}
|
|
46
|
+
async getMany(query) {
|
|
47
|
+
return this.service.getMany(query);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
52
|
+
__param(0, (0, common_1.Query)()),
|
|
53
|
+
__metadata("design:type", Function),
|
|
54
|
+
__metadata("design:paramtypes", [RouteQuery]),
|
|
55
|
+
__metadata("design:returntype", Promise)
|
|
56
|
+
], BaseGetManyController.prototype, "getMany", null);
|
|
57
|
+
Object.defineProperty(BaseGetManyController, 'name', {
|
|
58
|
+
value: `GetMany${entity.name}Controller`,
|
|
59
|
+
writable: false,
|
|
60
|
+
});
|
|
61
|
+
return BaseGetManyController;
|
|
62
|
+
}
|
|
63
|
+
exports.GetManyControllerMixin = GetManyControllerMixin;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { DTOsBundle, ServiceProvider } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { GetManyControllerConstructor } from './get-many-controller.interface';
|
|
5
|
+
declare function createGetManyServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
|
|
6
|
+
declare function createGetManyController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): GetManyControllerConstructor<Entity>;
|
|
7
|
+
export { createGetManyController, createGetManyServiceProvider };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.createGetManyServiceProvider = exports.createGetManyController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
18
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
19
|
+
const mongoose_2 = require("mongoose");
|
|
20
|
+
const dynamic_api_module_1 = require("../../dynamic-api.module");
|
|
21
|
+
const base_get_many_service_1 = require("./base-get-many.service");
|
|
22
|
+
const get_many_controller_mixin_1 = require("./get-many-controller.mixin");
|
|
23
|
+
function provideServiceName(entityName) {
|
|
24
|
+
return `GetMany${entityName}Service`;
|
|
25
|
+
}
|
|
26
|
+
function createGetManyServiceProvider(entity) {
|
|
27
|
+
let GetManyService = class GetManyService extends base_get_many_service_1.BaseGetManyService {
|
|
28
|
+
constructor(model) {
|
|
29
|
+
super(model);
|
|
30
|
+
this.model = model;
|
|
31
|
+
this.entity = entity;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
GetManyService = __decorate([
|
|
35
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
37
|
+
], GetManyService);
|
|
38
|
+
Object.defineProperty(GetManyService, 'name', {
|
|
39
|
+
value: provideServiceName(entity.name),
|
|
40
|
+
writable: false,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
provide: provideServiceName(entity.name),
|
|
44
|
+
useClass: GetManyService,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
exports.createGetManyServiceProvider = createGetManyServiceProvider;
|
|
48
|
+
function createGetManyController(entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
|
|
49
|
+
let GetManyController = class GetManyController extends (0, get_many_controller_mixin_1.GetManyControllerMixin)(entity, path, apiTag, version, description, DTOs) {
|
|
50
|
+
constructor(service) {
|
|
51
|
+
super(service);
|
|
52
|
+
this.service = service;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
GetManyController = __decorate([
|
|
56
|
+
(0, common_1.Controller)({ path, version }),
|
|
57
|
+
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
58
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe(validationPipeOptions ?? { transform: true })),
|
|
59
|
+
__param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
|
|
60
|
+
__metadata("design:paramtypes", [Object])
|
|
61
|
+
], GetManyController);
|
|
62
|
+
Object.defineProperty(GetManyController, 'name', {
|
|
63
|
+
value: `GetMany${entity.name}Controller`,
|
|
64
|
+
writable: false,
|
|
65
|
+
});
|
|
66
|
+
return GetManyController;
|
|
67
|
+
}
|
|
68
|
+
exports.createGetManyController = createGetManyController;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DynamicModule, Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { ControllerOptions, RouteConfig } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
export declare class GetManyModule {
|
|
5
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, { path, apiTag }: ControllerOptions, { description, dTOs: DTOs }: RouteConfig<Entity>, version?: string, validationPipeOptions?: ValidationPipeOptions): DynamicModule;
|
|
6
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var GetManyModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.GetManyModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const get_many_helper_1 = require("./get-many.helper");
|
|
13
|
+
let GetManyModule = GetManyModule_1 = class GetManyModule {
|
|
14
|
+
static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
|
|
15
|
+
const controller = (0, get_many_helper_1.createGetManyController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
|
|
16
|
+
const ServiceProvider = (0, get_many_helper_1.createGetManyServiceProvider)(entity);
|
|
17
|
+
return {
|
|
18
|
+
module: GetManyModule_1,
|
|
19
|
+
imports: [databaseModule],
|
|
20
|
+
controllers: [controller],
|
|
21
|
+
providers: [ServiceProvider],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.GetManyModule = GetManyModule;
|
|
26
|
+
exports.GetManyModule = GetManyModule = GetManyModule_1 = __decorate([
|
|
27
|
+
(0, common_1.Module)({})
|
|
28
|
+
], GetManyModule);
|
|
@@ -0,0 +1,22 @@
|
|
|
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("./base-get-many.service"), exports);
|
|
18
|
+
__exportStar(require("./get-many.helper"), exports);
|
|
19
|
+
__exportStar(require("./get-many.module"), exports);
|
|
20
|
+
__exportStar(require("./get-many-controller.interface"), exports);
|
|
21
|
+
__exportStar(require("./get-many-controller.mixin"), exports);
|
|
22
|
+
__exportStar(require("./get-many-service.interface"), exports);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="mongoose/types/aggregate" />
|
|
2
|
+
/// <reference types="mongoose/types/callback" />
|
|
3
|
+
/// <reference types="mongoose/types/collection" />
|
|
4
|
+
/// <reference types="mongoose/types/connection" />
|
|
5
|
+
/// <reference types="mongoose/types/cursor" />
|
|
6
|
+
/// <reference types="mongoose/types/document" />
|
|
7
|
+
/// <reference types="mongoose/types/error" />
|
|
8
|
+
/// <reference types="mongoose/types/expressions" />
|
|
9
|
+
/// <reference types="mongoose/types/helpers" />
|
|
10
|
+
/// <reference types="mongoose/types/middlewares" />
|
|
11
|
+
/// <reference types="mongoose/types/indexes" />
|
|
12
|
+
/// <reference types="mongoose/types/models" />
|
|
13
|
+
/// <reference types="mongoose/types/mongooseoptions" />
|
|
14
|
+
/// <reference types="mongoose/types/pipelinestage" />
|
|
15
|
+
/// <reference types="mongoose/types/populate" />
|
|
16
|
+
/// <reference types="mongoose/types/query" />
|
|
17
|
+
/// <reference types="mongoose/types/schemaoptions" />
|
|
18
|
+
/// <reference types="mongoose/types/schematypes" />
|
|
19
|
+
/// <reference types="mongoose/types/session" />
|
|
20
|
+
/// <reference types="mongoose/types/types" />
|
|
21
|
+
/// <reference types="mongoose/types/utility" />
|
|
22
|
+
/// <reference types="mongoose/types/validation" />
|
|
23
|
+
/// <reference types="mongoose/types/virtuals" />
|
|
24
|
+
/// <reference types="mongoose/types/inferschematype" />
|
|
25
|
+
import { Model } from 'mongoose';
|
|
26
|
+
import { BaseEntity } from '../../models';
|
|
27
|
+
import { BaseService } from '../../services';
|
|
28
|
+
import { GetOneService } from './get-one-service.interface';
|
|
29
|
+
export declare abstract class BaseGetOneService<Entity extends BaseEntity> extends BaseService<Entity> implements GetOneService<Entity> {
|
|
30
|
+
protected readonly model: Model<Entity>;
|
|
31
|
+
protected constructor(model: Model<Entity>);
|
|
32
|
+
getOne(id: string): Promise<Entity>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseGetOneService = void 0;
|
|
4
|
+
const services_1 = require("../../services");
|
|
5
|
+
class BaseGetOneService extends services_1.BaseService {
|
|
6
|
+
constructor(model) {
|
|
7
|
+
super(model);
|
|
8
|
+
this.model = model;
|
|
9
|
+
}
|
|
10
|
+
async getOne(id) {
|
|
11
|
+
const document = await this.model
|
|
12
|
+
.findOne({
|
|
13
|
+
_id: id,
|
|
14
|
+
...(this.isSoftDeletable ? { isDeleted: false } : undefined),
|
|
15
|
+
})
|
|
16
|
+
.lean()
|
|
17
|
+
.exec();
|
|
18
|
+
if (!document) {
|
|
19
|
+
this.handleDocumentNotFound();
|
|
20
|
+
}
|
|
21
|
+
return this.buildInstance(document);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.BaseGetOneService = BaseGetOneService;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseEntity } from '../../models';
|
|
2
|
+
import { GetOneService } from './get-one-service.interface';
|
|
3
|
+
interface GetOneController<Entity extends BaseEntity> {
|
|
4
|
+
getOne(id: string): Promise<Entity>;
|
|
5
|
+
}
|
|
6
|
+
type GetOneControllerConstructor<Entity extends BaseEntity> = new (service: GetOneService<Entity>) => GetOneController<Entity>;
|
|
7
|
+
export type { GetOneController, GetOneControllerConstructor };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { DTOsBundle } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { GetOneControllerConstructor } from './get-one-controller.interface';
|
|
5
|
+
declare function GetOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): GetOneControllerConstructor<Entity>;
|
|
6
|
+
export { GetOneControllerMixin };
|