mongodb-dynamic-api 1.2.0-beta.3 → 1.2.0-beta.4
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 +2 -0
- package/index.d.ts +1 -0
- package/package.json +7 -7
- package/src/builders/index.d.ts +1 -0
- package/src/builders/index.js +17 -0
- package/src/builders/route-decorators.builder.d.ts +17 -0
- package/src/builders/route-decorators.builder.js +72 -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.constant.d.ts +2 -0
- package/src/dynamic-api.constant.js +5 -0
- package/src/dynamic-api.module.d.ts +7 -0
- package/src/dynamic-api.module.js +80 -0
- package/src/helpers/index.d.ts +1 -0
- package/src/helpers/index.js +17 -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 +11 -0
- package/src/index.js +27 -0
- package/src/interfaces/dynamic-api-options.interface.d.ts +14 -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 +16 -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 +46 -0
- package/src/mixins/entity-presenter.mixin.js +9 -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 +7 -0
- package/src/modules/create-many/create-many-controller.interface.js +2 -0
- package/src/modules/create-many/create-many-controller.mixin.d.ts +5 -0
- package/src/modules/create-many/create-many-controller.mixin.js +75 -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 +6 -0
- package/src/modules/create-many/create-many.helper.js +71 -0
- package/src/modules/create-many/create-many.module.d.ts +5 -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 +5 -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 +6 -0
- package/src/modules/create-one/create-one.helper.js +71 -0
- package/src/modules/create-one/create-one.module.d.ts +5 -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 +33 -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 +5 -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 +6 -0
- package/src/modules/delete-one/delete-one.helper.js +71 -0
- package/src/modules/delete-one/delete-one.module.d.ts +5 -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 +5 -0
- package/src/modules/duplicate-one/duplicate-one-controller.mixin.js +71 -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 +6 -0
- package/src/modules/duplicate-one/duplicate-one.helper.js +71 -0
- package/src/modules/duplicate-one/duplicate-one.module.d.ts +5 -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 +5 -0
- package/src/modules/get-many/get-many-controller.mixin.js +62 -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 +6 -0
- package/src/modules/get-many/get-many.helper.js +71 -0
- package/src/modules/get-many/get-many.module.d.ts +5 -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 +5 -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 +6 -0
- package/src/modules/get-one/get-one.helper.js +71 -0
- package/src/modules/get-one/get-one.module.d.ts +5 -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 +5 -0
- package/src/modules/replace-one/replace-one-controller.mixin.js +71 -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 +6 -0
- package/src/modules/replace-one/replace-one.helper.js +71 -0
- package/src/modules/replace-one/replace-one.module.d.ts +5 -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 +5 -0
- package/src/modules/update-one/update-one-controller.mixin.js +71 -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 +6 -0
- package/src/modules/update-one/update-one.helper.js +71 -0
- package/src/modules/update-one/update-one.module.d.ts +5 -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/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,62 @@
|
|
|
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.CreateOneControllerMixin = void 0;
|
|
16
|
+
const _dynamic_api_1 = require("@dynamic-api");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const builders_1 = require("../../builders");
|
|
19
|
+
const helpers_1 = require("../../helpers");
|
|
20
|
+
function CreateOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
|
|
21
|
+
const displayedName = apiTag ?? entity.name;
|
|
22
|
+
const { body: CustomBody, presenter: CustomPresenter } = DTOs ?? {};
|
|
23
|
+
class RouteBody extends (CustomBody ?? (0, _dynamic_api_1.EntityBodyMixin)(entity)) {
|
|
24
|
+
}
|
|
25
|
+
if (!CustomBody) {
|
|
26
|
+
Object.defineProperty(RouteBody, 'name', {
|
|
27
|
+
value: `CreateOne${displayedName}Body`,
|
|
28
|
+
writable: false,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
class RoutePresenter extends (CustomPresenter ?? (0, _dynamic_api_1.EntityPresenterMixin)(entity)) {
|
|
32
|
+
}
|
|
33
|
+
if (!CustomPresenter) {
|
|
34
|
+
Object.defineProperty(RoutePresenter, 'name', {
|
|
35
|
+
value: `${displayedName}Presenter`,
|
|
36
|
+
writable: false,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('CreateOne', entity, description, undefined, undefined, RouteBody, RoutePresenter);
|
|
40
|
+
class BaseCreateOneController {
|
|
41
|
+
constructor(service) {
|
|
42
|
+
this.service = service;
|
|
43
|
+
this.entity = entity;
|
|
44
|
+
}
|
|
45
|
+
async createOne(body) {
|
|
46
|
+
return this.service.createOne(body);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
51
|
+
__param(0, (0, common_1.Body)()),
|
|
52
|
+
__metadata("design:type", Function),
|
|
53
|
+
__metadata("design:paramtypes", [RouteBody]),
|
|
54
|
+
__metadata("design:returntype", Promise)
|
|
55
|
+
], BaseCreateOneController.prototype, "createOne", null);
|
|
56
|
+
Object.defineProperty(BaseCreateOneController, 'name', {
|
|
57
|
+
value: `CreateOne${entity.name}Controller`,
|
|
58
|
+
writable: false,
|
|
59
|
+
});
|
|
60
|
+
return BaseCreateOneController;
|
|
61
|
+
}
|
|
62
|
+
exports.CreateOneControllerMixin = CreateOneControllerMixin;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseEntity, DTOsBundle, ServiceProvider } from '@dynamic-api';
|
|
2
|
+
import { CreateOneControllerConstructor } from '@dynamic-api/modules';
|
|
3
|
+
import { Type } from '@nestjs/common';
|
|
4
|
+
declare function createCreateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
|
|
5
|
+
declare function createCreateOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): CreateOneControllerConstructor<Entity>;
|
|
6
|
+
export { createCreateOneController, createCreateOneServiceProvider };
|
|
@@ -0,0 +1,71 @@
|
|
|
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.createCreateOneServiceProvider = exports.createCreateOneController = void 0;
|
|
16
|
+
const _dynamic_api_1 = require("@dynamic-api");
|
|
17
|
+
const modules_1 = require("@dynamic-api/modules");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
20
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
21
|
+
const mongoose_2 = require("mongoose");
|
|
22
|
+
function provideServiceName(entityName) {
|
|
23
|
+
return `CreateOne${entityName}Service`;
|
|
24
|
+
}
|
|
25
|
+
function createCreateOneServiceProvider(entity) {
|
|
26
|
+
let CreateOneService = class CreateOneService extends modules_1.BaseCreateOneService {
|
|
27
|
+
constructor(model) {
|
|
28
|
+
super(model);
|
|
29
|
+
this.model = model;
|
|
30
|
+
this.entity = entity;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
CreateOneService = __decorate([
|
|
34
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, process.env.BBD_CONNECTION_NAME || _dynamic_api_1.DEFAULT_BDD_CONNECTION_NAME)),
|
|
35
|
+
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
36
|
+
], CreateOneService);
|
|
37
|
+
Object.defineProperty(CreateOneService, 'name', {
|
|
38
|
+
value: provideServiceName(entity.name),
|
|
39
|
+
writable: false,
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
provide: provideServiceName(entity.name),
|
|
43
|
+
useClass: CreateOneService,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
exports.createCreateOneServiceProvider = createCreateOneServiceProvider;
|
|
47
|
+
function createCreateOneController(entity, path, apiTag, version, description, DTOs) {
|
|
48
|
+
let CreateOneController = class CreateOneController extends (0, modules_1.CreateOneControllerMixin)(entity, path, apiTag, version, description, DTOs) {
|
|
49
|
+
constructor(service) {
|
|
50
|
+
super(service);
|
|
51
|
+
this.service = service;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
CreateOneController = __decorate([
|
|
55
|
+
(0, common_1.Controller)({ path, version }),
|
|
56
|
+
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
57
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe({
|
|
58
|
+
forbidNonWhitelisted: true,
|
|
59
|
+
transform: true,
|
|
60
|
+
whitelist: true,
|
|
61
|
+
})),
|
|
62
|
+
__param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
|
|
63
|
+
__metadata("design:paramtypes", [Object])
|
|
64
|
+
], CreateOneController);
|
|
65
|
+
Object.defineProperty(CreateOneController, 'name', {
|
|
66
|
+
value: `CreateOne${entity.name}Controller`,
|
|
67
|
+
writable: false,
|
|
68
|
+
});
|
|
69
|
+
return CreateOneController;
|
|
70
|
+
}
|
|
71
|
+
exports.createCreateOneController = createCreateOneController;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseEntity, DTOsBundle } from '@dynamic-api';
|
|
2
|
+
import { DynamicModule, Type } from '@nestjs/common';
|
|
3
|
+
export declare class CreateOneModule {
|
|
4
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): DynamicModule;
|
|
5
|
+
}
|
|
@@ -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 CreateOneModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CreateOneModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const create_one_helper_1 = require("./create-one.helper");
|
|
13
|
+
let CreateOneModule = CreateOneModule_1 = class CreateOneModule {
|
|
14
|
+
static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs) {
|
|
15
|
+
const controller = (0, create_one_helper_1.createCreateOneController)(entity, path, apiTag, version, description, DTOs);
|
|
16
|
+
const ServiceProvider = (0, create_one_helper_1.createCreateOneServiceProvider)(entity);
|
|
17
|
+
return {
|
|
18
|
+
module: CreateOneModule_1,
|
|
19
|
+
imports: [databaseModule],
|
|
20
|
+
controllers: [controller],
|
|
21
|
+
providers: [ServiceProvider],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.CreateOneModule = CreateOneModule;
|
|
26
|
+
exports.CreateOneModule = CreateOneModule = CreateOneModule_1 = __decorate([
|
|
27
|
+
(0, common_1.Module)({})
|
|
28
|
+
], CreateOneModule);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './base-create-one.service';
|
|
2
|
+
export * from './create-one.helper';
|
|
3
|
+
export * from './create-one.module';
|
|
4
|
+
export * from './create-one-controller.interface';
|
|
5
|
+
export * from './create-one-controller.mixin';
|
|
6
|
+
export * from './create-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-create-one.service"), exports);
|
|
18
|
+
__exportStar(require("./create-one.helper"), exports);
|
|
19
|
+
__exportStar(require("./create-one.module"), exports);
|
|
20
|
+
__exportStar(require("./create-one-controller.interface"), exports);
|
|
21
|
+
__exportStar(require("./create-one-controller.mixin"), exports);
|
|
22
|
+
__exportStar(require("./create-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 { BaseEntity, DeleteOnePresenter } from '@dynamic-api';
|
|
26
|
+
import { DeleteOneService } from '@dynamic-api/modules';
|
|
27
|
+
import { BaseService } from '@dynamic-api/services';
|
|
28
|
+
import { Model } from 'mongoose';
|
|
29
|
+
export declare abstract class BaseDeleteOneService<Entity extends BaseEntity> extends BaseService<Entity> implements DeleteOneService<Entity> {
|
|
30
|
+
protected readonly model: Model<Entity>;
|
|
31
|
+
protected constructor(model: Model<Entity>);
|
|
32
|
+
deleteOne(id: string): Promise<DeleteOnePresenter>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseDeleteOneService = void 0;
|
|
4
|
+
const _dynamic_api_1 = require("@dynamic-api");
|
|
5
|
+
const services_1 = require("@dynamic-api/services");
|
|
6
|
+
const builder_pattern_1 = require("builder-pattern");
|
|
7
|
+
class BaseDeleteOneService extends services_1.BaseService {
|
|
8
|
+
constructor(model) {
|
|
9
|
+
super(model);
|
|
10
|
+
this.model = model;
|
|
11
|
+
}
|
|
12
|
+
async deleteOne(id) {
|
|
13
|
+
let op;
|
|
14
|
+
if (this.isSoftDeletable) {
|
|
15
|
+
const deleted = await this.model
|
|
16
|
+
.updateOne({
|
|
17
|
+
_id: id,
|
|
18
|
+
isDeleted: false,
|
|
19
|
+
}, { $set: { isDeleted: true, deletedAt: Date.now() } })
|
|
20
|
+
.exec();
|
|
21
|
+
op = { deletedCount: deleted.modifiedCount };
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
op = await this.model.deleteOne({ _id: id }).exec();
|
|
25
|
+
}
|
|
26
|
+
return (0, builder_pattern_1.Builder)(_dynamic_api_1.DeleteOnePresenter).deletedCount(op.deletedCount).build();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.BaseDeleteOneService = BaseDeleteOneService;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseEntity, DeletedCount } from "@dynamic-api";
|
|
2
|
+
import { DeleteOneService } from '@dynamic-api/modules';
|
|
3
|
+
interface DeleteOneController<Entity extends BaseEntity> {
|
|
4
|
+
deleteOne(id: string): Promise<DeletedCount>;
|
|
5
|
+
}
|
|
6
|
+
type DeleteOneControllerConstructor<Entity extends BaseEntity> = new (service: DeleteOneService<Entity>) => DeleteOneController<Entity>;
|
|
7
|
+
export type { DeleteOneController, DeleteOneControllerConstructor };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseEntity, DTOsBundle } from '@dynamic-api';
|
|
2
|
+
import { DeleteOneControllerConstructor } from '@dynamic-api/modules';
|
|
3
|
+
import { Type } from '@nestjs/common';
|
|
4
|
+
declare function DeleteOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): DeleteOneControllerConstructor<Entity>;
|
|
5
|
+
export { DeleteOneControllerMixin };
|
|
@@ -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.DeleteOneControllerMixin = void 0;
|
|
16
|
+
const modules_1 = require("@dynamic-api/modules");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const builders_1 = require("../../builders");
|
|
19
|
+
const dtos_1 = require("../../dtos");
|
|
20
|
+
const helpers_1 = require("../../helpers");
|
|
21
|
+
function DeleteOneControllerMixin(entity, path, apiTag, version, description, DTOs) {
|
|
22
|
+
const displayedName = apiTag ?? entity.name;
|
|
23
|
+
const { param: CustomParam, presenter: CustomPresenter } = DTOs ?? {};
|
|
24
|
+
class RouteParam extends (CustomParam ?? dtos_1.EntityParam) {
|
|
25
|
+
}
|
|
26
|
+
if (!CustomParam) {
|
|
27
|
+
Object.defineProperty(RouteParam, 'name', {
|
|
28
|
+
value: `DeleteOne${displayedName}Param`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
class RoutePresenter extends (CustomPresenter ?? modules_1.DeleteOnePresenter) {
|
|
33
|
+
}
|
|
34
|
+
if (!CustomPresenter) {
|
|
35
|
+
Object.defineProperty(RoutePresenter, 'name', {
|
|
36
|
+
value: `DeleteOne${displayedName}Presenter`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DeleteOne', entity, description, RouteParam, undefined, undefined, RoutePresenter);
|
|
41
|
+
class BaseDeleteOneController {
|
|
42
|
+
constructor(service) {
|
|
43
|
+
this.service = service;
|
|
44
|
+
this.entity = entity;
|
|
45
|
+
}
|
|
46
|
+
async deleteOne(id) {
|
|
47
|
+
return this.service.deleteOne(id);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, helpers_1.RouteDecoratorsHelper)(routeDecoratorsBuilder),
|
|
52
|
+
__param(0, (0, common_1.Param)('id')),
|
|
53
|
+
__metadata("design:type", Function),
|
|
54
|
+
__metadata("design:paramtypes", [String]),
|
|
55
|
+
__metadata("design:returntype", Promise)
|
|
56
|
+
], BaseDeleteOneController.prototype, "deleteOne", null);
|
|
57
|
+
Object.defineProperty(BaseDeleteOneController, 'name', {
|
|
58
|
+
value: `DeleteOne${entity.name}Controller`,
|
|
59
|
+
writable: false,
|
|
60
|
+
});
|
|
61
|
+
return BaseDeleteOneController;
|
|
62
|
+
}
|
|
63
|
+
exports.DeleteOneControllerMixin = DeleteOneControllerMixin;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseEntity, DTOsBundle, ServiceProvider } from '@dynamic-api';
|
|
2
|
+
import { DeleteOneControllerConstructor } from '@dynamic-api/modules';
|
|
3
|
+
import { Type } from '@nestjs/common';
|
|
4
|
+
declare function createDeleteOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
|
|
5
|
+
declare function createDeleteOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): DeleteOneControllerConstructor<Entity>;
|
|
6
|
+
export { createDeleteOneController, createDeleteOneServiceProvider };
|
|
@@ -0,0 +1,71 @@
|
|
|
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.createDeleteOneServiceProvider = exports.createDeleteOneController = void 0;
|
|
16
|
+
const _dynamic_api_1 = require("@dynamic-api");
|
|
17
|
+
const modules_1 = require("@dynamic-api/modules");
|
|
18
|
+
const common_1 = require("@nestjs/common");
|
|
19
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
20
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
21
|
+
const mongoose_2 = require("mongoose");
|
|
22
|
+
function provideServiceName(entityName) {
|
|
23
|
+
return `DeleteOne${entityName}Service`;
|
|
24
|
+
}
|
|
25
|
+
function createDeleteOneServiceProvider(entity) {
|
|
26
|
+
let DeleteOneService = class DeleteOneService extends modules_1.BaseDeleteOneService {
|
|
27
|
+
constructor(model) {
|
|
28
|
+
super(model);
|
|
29
|
+
this.model = model;
|
|
30
|
+
this.entity = entity;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
DeleteOneService = __decorate([
|
|
34
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, process.env.BBD_CONNECTION_NAME || _dynamic_api_1.DEFAULT_BDD_CONNECTION_NAME)),
|
|
35
|
+
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
36
|
+
], DeleteOneService);
|
|
37
|
+
Object.defineProperty(DeleteOneService, 'name', {
|
|
38
|
+
value: provideServiceName(entity.name),
|
|
39
|
+
writable: false,
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
provide: provideServiceName(entity.name),
|
|
43
|
+
useClass: DeleteOneService,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
exports.createDeleteOneServiceProvider = createDeleteOneServiceProvider;
|
|
47
|
+
function createDeleteOneController(entity, path, apiTag, version, description, DTOs) {
|
|
48
|
+
let DeleteOneController = class DeleteOneController extends (0, modules_1.DeleteOneControllerMixin)(entity, path, apiTag, version, description, DTOs) {
|
|
49
|
+
constructor(service) {
|
|
50
|
+
super(service);
|
|
51
|
+
this.service = service;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
DeleteOneController = __decorate([
|
|
55
|
+
(0, common_1.Controller)({ path, version }),
|
|
56
|
+
(0, swagger_1.ApiTags)(apiTag || entity.name),
|
|
57
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe({
|
|
58
|
+
forbidNonWhitelisted: true,
|
|
59
|
+
transform: true,
|
|
60
|
+
whitelist: true,
|
|
61
|
+
})),
|
|
62
|
+
__param(0, (0, common_1.Inject)(provideServiceName(entity.name))),
|
|
63
|
+
__metadata("design:paramtypes", [Object])
|
|
64
|
+
], DeleteOneController);
|
|
65
|
+
Object.defineProperty(DeleteOneController, 'name', {
|
|
66
|
+
value: `DeleteOne${entity.name}Controller`,
|
|
67
|
+
writable: false,
|
|
68
|
+
});
|
|
69
|
+
return DeleteOneController;
|
|
70
|
+
}
|
|
71
|
+
exports.createDeleteOneController = createDeleteOneController;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BaseEntity, DTOsBundle } from '@dynamic-api';
|
|
2
|
+
import { DynamicModule, Type } from '@nestjs/common';
|
|
3
|
+
export declare class DeleteOneModule {
|
|
4
|
+
static forFeature<Entity extends BaseEntity>(databaseModule: DynamicModule, entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): DynamicModule;
|
|
5
|
+
}
|
|
@@ -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 DeleteOneModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.DeleteOneModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const delete_one_helper_1 = require("./delete-one.helper");
|
|
13
|
+
let DeleteOneModule = DeleteOneModule_1 = class DeleteOneModule {
|
|
14
|
+
static forFeature(databaseModule, entity, path, apiTag, version, description, DTOs) {
|
|
15
|
+
const controller = (0, delete_one_helper_1.createDeleteOneController)(entity, path, apiTag, version, description, DTOs);
|
|
16
|
+
const ServiceProvider = (0, delete_one_helper_1.createDeleteOneServiceProvider)(entity);
|
|
17
|
+
return {
|
|
18
|
+
module: DeleteOneModule_1,
|
|
19
|
+
imports: [databaseModule],
|
|
20
|
+
controllers: [controller],
|
|
21
|
+
providers: [ServiceProvider],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.DeleteOneModule = DeleteOneModule;
|
|
26
|
+
exports.DeleteOneModule = DeleteOneModule = DeleteOneModule_1 = __decorate([
|
|
27
|
+
(0, common_1.Module)({})
|
|
28
|
+
], DeleteOneModule);
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.DeleteOnePresenter = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
class DeleteOnePresenter {
|
|
15
|
+
}
|
|
16
|
+
exports.DeleteOnePresenter = DeleteOnePresenter;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, swagger_1.ApiProperty)(),
|
|
19
|
+
__metadata("design:type", Number)
|
|
20
|
+
], DeleteOnePresenter.prototype, "deletedCount", void 0);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './base-delete-one.service';
|
|
2
|
+
export * from './delete-one.helper';
|
|
3
|
+
export * from './delete-one.module';
|
|
4
|
+
export * from './delete-one.presenter';
|
|
5
|
+
export * from './delete-one-controller.interface';
|
|
6
|
+
export * from './delete-one-controller.mixin';
|
|
7
|
+
export * from './delete-one-service.interface';
|
|
@@ -0,0 +1,23 @@
|
|
|
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-delete-one.service"), exports);
|
|
18
|
+
__exportStar(require("./delete-one.helper"), exports);
|
|
19
|
+
__exportStar(require("./delete-one.module"), exports);
|
|
20
|
+
__exportStar(require("./delete-one.presenter"), exports);
|
|
21
|
+
__exportStar(require("./delete-one-controller.interface"), exports);
|
|
22
|
+
__exportStar(require("./delete-one-controller.mixin"), exports);
|
|
23
|
+
__exportStar(require("./delete-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 { BaseEntity } from '@dynamic-api';
|
|
26
|
+
import { DuplicateOneService } from '@dynamic-api/modules';
|
|
27
|
+
import { BaseService } from '@dynamic-api/services';
|
|
28
|
+
import { Model } from 'mongoose';
|
|
29
|
+
export declare abstract class BaseDuplicateOneService<Entity extends BaseEntity> extends BaseService<Entity> implements DuplicateOneService<Entity> {
|
|
30
|
+
protected readonly model: Model<Entity>;
|
|
31
|
+
protected constructor(model: Model<Entity>);
|
|
32
|
+
duplicateOne(id: string, partial: Partial<Entity>): Promise<Entity>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseDuplicateOneService = void 0;
|
|
4
|
+
const _dynamic_api_1 = require("@dynamic-api");
|
|
5
|
+
const services_1 = require("@dynamic-api/services");
|
|
6
|
+
class BaseDuplicateOneService extends services_1.BaseService {
|
|
7
|
+
constructor(model) {
|
|
8
|
+
super(model);
|
|
9
|
+
this.model = model;
|
|
10
|
+
}
|
|
11
|
+
async duplicateOne(id, partial) {
|
|
12
|
+
try {
|
|
13
|
+
const toDuplicate = await this.model
|
|
14
|
+
.findOne({
|
|
15
|
+
_id: id,
|
|
16
|
+
...(this.isSoftDeletable ? { isDeleted: false } : undefined),
|
|
17
|
+
})
|
|
18
|
+
.lean()
|
|
19
|
+
.exec();
|
|
20
|
+
if (!toDuplicate) {
|
|
21
|
+
this.handleDocumentNotFound();
|
|
22
|
+
}
|
|
23
|
+
const { _id } = await this.model.create({
|
|
24
|
+
...Object.entries(toDuplicate).reduce((acc, [key, value]) => {
|
|
25
|
+
if ((0, _dynamic_api_1.baseEntityKeysToExclude)().includes(key)) {
|
|
26
|
+
return acc;
|
|
27
|
+
}
|
|
28
|
+
return { ...acc, [key]: value };
|
|
29
|
+
}, {}),
|
|
30
|
+
...partial,
|
|
31
|
+
});
|
|
32
|
+
const document = await this.model.findOne({ _id }).lean().exec();
|
|
33
|
+
return this.buildInstance(document);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
this.handleDuplicateKeyError(error);
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.BaseDuplicateOneService = BaseDuplicateOneService;
|