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,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseUpdateOneService = void 0;
|
|
4
|
+
const services_1 = require("../../services");
|
|
5
|
+
class BaseUpdateOneService extends services_1.BaseService {
|
|
6
|
+
constructor(model) {
|
|
7
|
+
super(model);
|
|
8
|
+
this.model = model;
|
|
9
|
+
}
|
|
10
|
+
async updateOne(id, partial) {
|
|
11
|
+
try {
|
|
12
|
+
const document = await this.model
|
|
13
|
+
.findOneAndUpdate({
|
|
14
|
+
_id: id,
|
|
15
|
+
...(this.isSoftDeletable ? { isDeleted: false } : undefined),
|
|
16
|
+
}, partial, { new: true })
|
|
17
|
+
.lean()
|
|
18
|
+
.exec();
|
|
19
|
+
if (!document) {
|
|
20
|
+
this.handleDocumentNotFound();
|
|
21
|
+
}
|
|
22
|
+
return this.buildInstance(document);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
this.handleDuplicateKeyError(error);
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.BaseUpdateOneService = BaseUpdateOneService;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './base-update-one.service';
|
|
2
|
+
export * from './update-one.helper';
|
|
3
|
+
export * from './update-one.module';
|
|
4
|
+
export * from './update-one-controller.interface';
|
|
5
|
+
export * from './update-one-controller.mixin';
|
|
6
|
+
export * from './update-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-update-one.service"), exports);
|
|
18
|
+
__exportStar(require("./update-one.helper"), exports);
|
|
19
|
+
__exportStar(require("./update-one.module"), exports);
|
|
20
|
+
__exportStar(require("./update-one-controller.interface"), exports);
|
|
21
|
+
__exportStar(require("./update-one-controller.mixin"), exports);
|
|
22
|
+
__exportStar(require("./update-one-service.interface"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BaseEntity } from '../../models';
|
|
2
|
+
import { UpdateOneService } from './update-one-service.interface';
|
|
3
|
+
interface UpdateOneController<Entity extends BaseEntity> {
|
|
4
|
+
updateOne(id: string, partial: Partial<Entity>): Promise<Entity | undefined>;
|
|
5
|
+
}
|
|
6
|
+
type UpdateOneControllerConstructor<Entity extends BaseEntity> = new (service: UpdateOneService<Entity>) => UpdateOneController<Entity>;
|
|
7
|
+
export type { UpdateOneController, UpdateOneControllerConstructor };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { DTOsBundle } 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: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle): UpdateOneControllerConstructor<Entity>;
|
|
6
|
+
export { UpdateOneControllerMixin };
|
|
@@ -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.UpdateOneControllerMixin = 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 UpdateOneControllerMixin(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: `UpdateOne${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: `UpdateOne${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('UpdateOne', entity, description, RouteParam, undefined, RouteBody, RoutePresenter);
|
|
49
|
+
class BaseUpdateOneController {
|
|
50
|
+
constructor(service) {
|
|
51
|
+
this.service = service;
|
|
52
|
+
this.entity = entity;
|
|
53
|
+
}
|
|
54
|
+
async updateOne(id, body) {
|
|
55
|
+
return this.service.updateOne(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
|
+
], BaseUpdateOneController.prototype, "updateOne", null);
|
|
66
|
+
Object.defineProperty(BaseUpdateOneController, 'name', {
|
|
67
|
+
value: `UpdateOne${entity.name}Controller`,
|
|
68
|
+
writable: false,
|
|
69
|
+
});
|
|
70
|
+
return BaseUpdateOneController;
|
|
71
|
+
}
|
|
72
|
+
exports.UpdateOneControllerMixin = UpdateOneControllerMixin;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Type, ValidationPipeOptions } from '@nestjs/common';
|
|
2
|
+
import { DTOsBundle, ServiceProvider } from '../../interfaces';
|
|
3
|
+
import { BaseEntity } from '../../models';
|
|
4
|
+
import { UpdateOneControllerConstructor } from './update-one-controller.interface';
|
|
5
|
+
declare function createUpdateOneServiceProvider<Entity extends BaseEntity>(entity: Type<Entity>): ServiceProvider;
|
|
6
|
+
declare function createUpdateOneController<Entity extends BaseEntity>(entity: Type<Entity>, path: string, apiTag?: string, version?: string, description?: string, DTOs?: DTOsBundle, validationPipeOptions?: ValidationPipeOptions): UpdateOneControllerConstructor<Entity>;
|
|
7
|
+
export { createUpdateOneController, createUpdateOneServiceProvider };
|
|
@@ -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.createUpdateOneServiceProvider = exports.createUpdateOneController = 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_update_one_service_1 = require("./base-update-one.service");
|
|
22
|
+
const update_one_controller_mixin_1 = require("./update-one-controller.mixin");
|
|
23
|
+
function provideServiceName(entityName) {
|
|
24
|
+
return `UpdateOne${entityName}Service`;
|
|
25
|
+
}
|
|
26
|
+
function createUpdateOneServiceProvider(entity) {
|
|
27
|
+
let UpdateOneService = class UpdateOneService extends base_update_one_service_1.BaseUpdateOneService {
|
|
28
|
+
constructor(model) {
|
|
29
|
+
super(model);
|
|
30
|
+
this.model = model;
|
|
31
|
+
this.entity = entity;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
UpdateOneService = __decorate([
|
|
35
|
+
__param(0, (0, mongoose_1.InjectModel)(entity.name, dynamic_api_module_1.DynamicApiModule.connectionName)),
|
|
36
|
+
__metadata("design:paramtypes", [mongoose_2.Model])
|
|
37
|
+
], UpdateOneService);
|
|
38
|
+
Object.defineProperty(UpdateOneService, 'name', {
|
|
39
|
+
value: provideServiceName(entity.name),
|
|
40
|
+
writable: false,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
provide: provideServiceName(entity.name),
|
|
44
|
+
useClass: UpdateOneService,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
exports.createUpdateOneServiceProvider = createUpdateOneServiceProvider;
|
|
48
|
+
function createUpdateOneController(entity, path, apiTag, version, description, DTOs, validationPipeOptions) {
|
|
49
|
+
let UpdateOneController = class UpdateOneController extends (0, update_one_controller_mixin_1.UpdateOneControllerMixin)(entity, path, apiTag, version, description, DTOs) {
|
|
50
|
+
constructor(service) {
|
|
51
|
+
super(service);
|
|
52
|
+
this.service = service;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
UpdateOneController = __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
|
+
], UpdateOneController);
|
|
62
|
+
Object.defineProperty(UpdateOneController, 'name', {
|
|
63
|
+
value: `UpdateOne${entity.name}Controller`,
|
|
64
|
+
writable: false,
|
|
65
|
+
});
|
|
66
|
+
return UpdateOneController;
|
|
67
|
+
}
|
|
68
|
+
exports.createUpdateOneController = createUpdateOneController;
|
|
@@ -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 UpdateOneModule {
|
|
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 UpdateOneModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.UpdateOneModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const update_one_helper_1 = require("./update-one.helper");
|
|
13
|
+
let UpdateOneModule = UpdateOneModule_1 = class UpdateOneModule {
|
|
14
|
+
static forFeature(databaseModule, entity, { path, apiTag }, { description, dTOs: DTOs }, version, validationPipeOptions) {
|
|
15
|
+
const controller = (0, update_one_helper_1.createUpdateOneController)(entity, path, apiTag, version, description, DTOs, validationPipeOptions);
|
|
16
|
+
const ServiceProvider = (0, update_one_helper_1.createUpdateOneServiceProvider)(entity);
|
|
17
|
+
return {
|
|
18
|
+
module: UpdateOneModule_1,
|
|
19
|
+
imports: [databaseModule],
|
|
20
|
+
controllers: [controller],
|
|
21
|
+
providers: [ServiceProvider],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.UpdateOneModule = UpdateOneModule;
|
|
26
|
+
exports.UpdateOneModule = UpdateOneModule = UpdateOneModule_1 = __decorate([
|
|
27
|
+
(0, common_1.Module)({})
|
|
28
|
+
], UpdateOneModule);
|
|
@@ -0,0 +1,36 @@
|
|
|
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 { Type } from '@nestjs/common';
|
|
26
|
+
import { Model } from 'mongoose';
|
|
27
|
+
import { BaseEntity } from '../models';
|
|
28
|
+
export declare abstract class BaseService<Entity extends BaseEntity> {
|
|
29
|
+
protected readonly model: Model<Entity>;
|
|
30
|
+
protected readonly entity: Type<Entity>;
|
|
31
|
+
protected constructor(model: Model<Entity>);
|
|
32
|
+
get isSoftDeletable(): boolean;
|
|
33
|
+
protected buildInstance(document: Entity): Entity;
|
|
34
|
+
protected handleDuplicateKeyError(error: any): void;
|
|
35
|
+
protected handleDocumentNotFound(): void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseService = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const builder_pattern_1 = require("builder-pattern");
|
|
6
|
+
class BaseService {
|
|
7
|
+
constructor(model) {
|
|
8
|
+
this.model = model;
|
|
9
|
+
}
|
|
10
|
+
get isSoftDeletable() {
|
|
11
|
+
return Object.getOwnPropertyNames(this.model.schema.paths).includes('deletedAt');
|
|
12
|
+
}
|
|
13
|
+
buildInstance(document) {
|
|
14
|
+
const { _id, __v, ...rest } = document;
|
|
15
|
+
return (0, builder_pattern_1.Builder)(this.entity, rest)
|
|
16
|
+
.id(_id.toString())
|
|
17
|
+
.build();
|
|
18
|
+
}
|
|
19
|
+
handleDuplicateKeyError(error) {
|
|
20
|
+
if (error.code === 11000) {
|
|
21
|
+
const properties = Object.entries(error.keyValue)
|
|
22
|
+
.filter(([key]) => key !== 'deletedAt')
|
|
23
|
+
.map(([key, value]) => `${key} '${value}'`);
|
|
24
|
+
throw new common_1.BadRequestException(properties.length === 1
|
|
25
|
+
? `${properties[0]} is already used`
|
|
26
|
+
: `The combination of ${properties.join(', ')} already exists`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
handleDocumentNotFound() {
|
|
30
|
+
throw new common_1.BadRequestException('Document not found');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.BaseService = BaseService;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './base.service';
|
|
@@ -0,0 +1,17 @@
|
|
|
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.service"), exports);
|
package/src/version.json
ADDED