mongodb-dynamic-api 2.6.0 → 2.7.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 +7 -0
- package/package.json +1 -2
- package/src/helpers/index.d.ts +1 -1
- package/src/helpers/index.js +1 -1
- package/src/helpers/index.js.map +1 -1
- package/src/helpers/mixin-data.helper.d.ts +12 -0
- package/src/helpers/mixin-data.helper.js +30 -0
- package/src/helpers/mixin-data.helper.js.map +1 -0
- package/src/interfaces/dynamic-api-route-dtos-bundle.type.d.ts +9 -1
- package/src/mixins/entity-body.mixin.d.ts +1 -1
- package/src/mixins/entity-body.mixin.js +2 -2
- package/src/mixins/entity-body.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-body.mixin.d.ts +17 -0
- package/src/routes/create-many/{create-many-body-dto.mixin.js → create-many-body.mixin.js} +15 -10
- package/src/routes/create-many/create-many-body.mixin.js.map +1 -0
- package/src/routes/create-many/create-many-controller.interface.d.ts +2 -2
- package/src/routes/create-many/create-many-controller.mixin.d.ts +1 -1
- package/src/routes/create-many/create-many-controller.mixin.js +33 -7
- package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-gateway.interface.d.ts +2 -2
- package/src/routes/create-many/create-many-gateway.mixin.d.ts +1 -1
- package/src/routes/create-many/create-many-gateway.mixin.js +29 -8
- package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-presenter.mixin.d.ts +17 -0
- package/src/routes/create-many/create-many-presenter.mixin.js +11 -0
- package/src/routes/create-many/create-many-presenter.mixin.js.map +1 -0
- package/src/routes/create-many/index.d.ts +2 -1
- package/src/routes/create-many/index.js +2 -1
- package/src/routes/create-many/index.js.map +1 -1
- package/src/routes/create-one/create-one-controller.interface.d.ts +2 -2
- package/src/routes/create-one/create-one-controller.mixin.d.ts +1 -1
- package/src/routes/create-one/create-one-controller.mixin.js +23 -7
- package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-gateway.interface.d.ts +2 -2
- package/src/routes/create-one/create-one-gateway.mixin.d.ts +1 -1
- package/src/routes/create-one/create-one-gateway.mixin.js +22 -7
- package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
- package/src/routes/delete-many/base-delete-many.service.js +3 -3
- package/src/routes/delete-many/base-delete-many.service.js.map +1 -1
- package/src/routes/delete-many/delete-many-controller.interface.d.ts +4 -3
- package/src/routes/delete-many/delete-many-controller.mixin.d.ts +1 -1
- package/src/routes/delete-many/delete-many-controller.mixin.js +14 -6
- package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-gateway.interface.d.ts +4 -4
- package/src/routes/delete-many/delete-many-gateway.mixin.d.ts +1 -1
- package/src/routes/delete-many/delete-many-gateway.mixin.js +13 -5
- package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -1
- package/src/routes/delete-one/base-delete-one.service.js +3 -3
- package/src/routes/delete-one/base-delete-one.service.js.map +1 -1
- package/src/routes/delete-one/delete-one-controller.interface.d.ts +3 -3
- package/src/routes/delete-one/delete-one-controller.mixin.d.ts +1 -1
- package/src/routes/delete-one/delete-one-controller.mixin.js +15 -7
- package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-gateway.interface.d.ts +4 -4
- package/src/routes/delete-one/delete-one-gateway.mixin.d.ts +1 -1
- package/src/routes/delete-one/delete-one-gateway.mixin.js +13 -5
- package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.interface.d.ts +2 -2
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.d.ts +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +24 -7
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.interface.d.ts +2 -2
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.d.ts +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +22 -5
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-service.interface.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one-controller.interface.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.d.ts +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +24 -7
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.interface.d.ts +2 -2
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.d.ts +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +22 -5
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-controller.interface.d.ts +2 -2
- package/src/routes/get-many/get-many-controller.mixin.d.ts +1 -1
- package/src/routes/get-many/get-many-controller.mixin.js +18 -8
- package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-gateway.interface.d.ts +2 -2
- package/src/routes/get-many/get-many-gateway.mixin.d.ts +1 -1
- package/src/routes/get-many/get-many-gateway.mixin.js +20 -7
- package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-controller.interface.d.ts +2 -2
- package/src/routes/get-one/get-one-controller.mixin.d.ts +1 -1
- package/src/routes/get-one/get-one-controller.mixin.js +14 -4
- package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-gateway.interface.d.ts +2 -2
- package/src/routes/get-one/get-one-gateway.mixin.d.ts +1 -1
- package/src/routes/get-one/get-one-gateway.mixin.js +14 -5
- package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-controller.interface.d.ts +2 -2
- package/src/routes/replace-one/replace-one-controller.mixin.d.ts +1 -1
- package/src/routes/replace-one/replace-one-controller.mixin.js +25 -8
- package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-gateway.interface.d.ts +2 -2
- package/src/routes/replace-one/replace-one-gateway.mixin.d.ts +1 -1
- package/src/routes/replace-one/replace-one-gateway.mixin.js +22 -6
- package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-controller.interface.d.ts +2 -2
- package/src/routes/update-many/update-many-controller.mixin.d.ts +1 -1
- package/src/routes/update-many/update-many-controller.mixin.js +27 -7
- package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-gateway.interface.d.ts +2 -2
- package/src/routes/update-many/update-many-gateway.mixin.d.ts +1 -1
- package/src/routes/update-many/update-many-gateway.mixin.js +23 -6
- package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-controller.interface.d.ts +2 -2
- package/src/routes/update-one/update-one-controller.mixin.d.ts +1 -1
- package/src/routes/update-one/update-one-controller.mixin.js +29 -8
- package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-gateway.interface.d.ts +2 -2
- package/src/routes/update-one/update-one-gateway.mixin.d.ts +1 -1
- package/src/routes/update-one/update-one-gateway.mixin.js +22 -6
- package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
- package/src/services/base/base.service.js +5 -4
- package/src/services/base/base.service.js.map +1 -1
- package/src/version.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/helpers/controller-mixin.helper.d.ts +0 -14
- package/src/helpers/controller-mixin.helper.js +0 -132
- package/src/helpers/controller-mixin.helper.js.map +0 -1
- package/src/routes/create-many/create-many-body-dto.mixin.d.ts +0 -7
- package/src/routes/create-many/create-many-body-dto.mixin.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
|
|
3
|
+
## [2.7.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.6.0...v2.7.0) (2024-08-29)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### api
|
|
7
|
+
|
|
8
|
+
* **api:** add mapping from / to entity, update related ([2af5ad3](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/2af5ad373e83b9161bf4ac8f3b4a910aa3801aef))
|
|
9
|
+
|
|
3
10
|
## [2.6.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v2.5.1...v2.6.0) (2024-08-24)
|
|
4
11
|
|
|
5
12
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongodb-dynamic-api",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Auto generated CRUD API for MongoDB using NestJS",
|
|
5
5
|
"readmeFilename": "README.md",
|
|
6
6
|
"main": "index.js",
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"@nestjs/websockets": "^10.3.8",
|
|
53
53
|
"@types/lodash": "^4.14.202",
|
|
54
54
|
"bcrypt": "^5.1.1",
|
|
55
|
-
"builder-pattern": "^2.2.0",
|
|
56
55
|
"cache-manager": "^5.4.0",
|
|
57
56
|
"class-transformer": "^0.5.1",
|
|
58
57
|
"class-validator": "^0.14.1",
|
package/src/helpers/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * from './controller-ability-predicates.helper';
|
|
2
|
-
export * from './controller-mixin.helper';
|
|
3
2
|
export * from './format.helper';
|
|
3
|
+
export * from './mixin-data.helper';
|
|
4
4
|
export * from './route-decorators.helper';
|
|
5
5
|
export * from './route-description.helper';
|
|
6
6
|
export * from './schema.helper';
|
package/src/helpers/index.js
CHANGED
|
@@ -15,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./controller-ability-predicates.helper"), exports);
|
|
18
|
-
__exportStar(require("./controller-mixin.helper"), exports);
|
|
19
18
|
__exportStar(require("./format.helper"), exports);
|
|
19
|
+
__exportStar(require("./mixin-data.helper"), exports);
|
|
20
20
|
__exportStar(require("./route-decorators.helper"), exports);
|
|
21
21
|
__exportStar(require("./route-description.helper"), exports);
|
|
22
22
|
__exportStar(require("./schema.helper"), exports);
|
package/src/helpers/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,kDAAgC;AAChC,sDAAoC;AACpC,4DAA0C;AAC1C,6DAA2C;AAC3C,kDAAgC;AAChC,yDAAuC;AACvC,0DAAwC;AACxC,6DAA2C;AAC3C,6DAA2C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { AbilityPredicate, DynamicApiControllerOptions, DynamicAPIRouteConfig, RouteType } from '../interfaces';
|
|
3
|
+
import { BaseEntity } from '../models';
|
|
4
|
+
declare function getMixinData<Entity extends BaseEntity>(entity: Type<Entity>, { apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }: DynamicApiControllerOptions<Entity>, { type: routeType, subPath, description, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, eventName, }: DynamicAPIRouteConfig<Entity>, isGateway?: boolean): {
|
|
5
|
+
routeType: RouteType;
|
|
6
|
+
displayedName: string;
|
|
7
|
+
description: string;
|
|
8
|
+
isPublic: boolean;
|
|
9
|
+
abilityPredicate: AbilityPredicate<Entity>;
|
|
10
|
+
event?: string;
|
|
11
|
+
};
|
|
12
|
+
export { getMixinData };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMixinData = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
const controller_ability_predicates_helper_1 = require("./controller-ability-predicates.helper");
|
|
6
|
+
const format_helper_1 = require("./format.helper");
|
|
7
|
+
function getMixinData(entity, { apiTag, isPublic: isPublicController, abilityPredicates: controllerAbilityPredicates, }, { type: routeType, subPath, description, isPublic: isPublicRoute, abilityPredicate: routeAbilityPredicate, eventName, }, isGateway = false) {
|
|
8
|
+
const displayedName = (0, format_helper_1.getDisplayedName)(apiTag, entity.name, subPath);
|
|
9
|
+
let isPublic;
|
|
10
|
+
if (typeof isPublicRoute === 'boolean') {
|
|
11
|
+
isPublic = isPublicRoute;
|
|
12
|
+
}
|
|
13
|
+
else if (typeof isPublicController === 'boolean') {
|
|
14
|
+
isPublic = isPublicController;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
isPublic = false;
|
|
18
|
+
}
|
|
19
|
+
const abilityPredicate = routeAbilityPredicate ?? (0, controller_ability_predicates_helper_1.getPredicateFromControllerAbilityPredicates)(controllerAbilityPredicates, routeType);
|
|
20
|
+
return {
|
|
21
|
+
routeType,
|
|
22
|
+
displayedName,
|
|
23
|
+
description,
|
|
24
|
+
isPublic,
|
|
25
|
+
abilityPredicate,
|
|
26
|
+
...(isGateway && { event: eventName ?? (0, lodash_1.kebabCase)(`${routeType}/${displayedName}`) }),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.getMixinData = getMixinData;
|
|
30
|
+
//# sourceMappingURL=mixin-data.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixin-data.helper.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/helpers/mixin-data.helper.ts"],"names":[],"mappings":";;;AACA,mCAAmC;AAQnC,iGAAqG;AACrG,mDAAmD;AAEnD,SAAS,YAAY,CACnB,MAAoB,EACpB,EACE,MAAM,EACN,QAAQ,EAAE,kBAAkB,EAC5B,iBAAiB,EAAE,2BAA2B,GACV,EACtC,EACE,IAAI,EAAE,SAAS,EACf,OAAO,EACP,WAAW,EACX,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,qBAAqB,EACvC,SAAS,GACqB,EAChC,SAAS,GAAG,KAAK;IASjB,MAAM,aAAa,GAAG,IAAA,gCAAgB,EAAC,MAAM,EAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEtE,IAAI,QAAiB,CAAC;IACtB,IAAI,OAAO,aAAa,KAAK,SAAS,EAAE,CAAC;QACvC,QAAQ,GAAG,aAAa,CAAC;IAC3B,CAAC;SAAM,IAAI,OAAO,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACnD,QAAQ,GAAG,kBAAkB,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,IAAI,IAAA,kFAA2C,EAC3F,2BAA2B,EAC3B,SAAS,CACV,CAAC;IAEF,OAAO;QACL,SAAS;QACT,aAAa;QACb,WAAW;QACX,QAAQ;QACR,gBAAgB;QAChB,GAAG,CAAC,SAAS,IAAI,EAAE,KAAK,EAAE,SAAS,IAAI,IAAA,kBAAS,EAAC,GAAG,SAAS,IAAI,aAAa,EAAE,CAAC,EAAE,CAAC;KACrF,CAAC;AACJ,CAAC;AAEQ,oCAAY"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { Type } from '@nestjs/common';
|
|
2
|
+
import { DeleteResult } from './dynamic-api-route-response.type';
|
|
3
|
+
interface Mappable<Entity> {
|
|
4
|
+
toEntity?: <DTO = any>(body: DTO) => Partial<Entity>;
|
|
5
|
+
toEntities?: <DTO = any>(body: DTO) => Partial<Entity>[];
|
|
6
|
+
fromDeleteResult?: <Presenter = any>(result: DeleteResult) => Presenter;
|
|
7
|
+
fromEntity?: <Presenter = any>(entity: Entity) => Presenter;
|
|
8
|
+
fromEntities?: <Presenter = any>(entities: Entity[]) => Presenter[];
|
|
9
|
+
}
|
|
2
10
|
type DTOsBundle = {
|
|
3
11
|
query?: Type;
|
|
4
12
|
param?: Type;
|
|
5
13
|
body?: Type;
|
|
6
14
|
presenter?: Type;
|
|
7
15
|
};
|
|
8
|
-
export { DTOsBundle };
|
|
16
|
+
export { DTOsBundle, Mappable };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Type } from '@nestjs/common';
|
|
2
2
|
import { BaseEntity } from '../models';
|
|
3
3
|
declare const baseEntityKeysToExclude: <Entity extends BaseEntity>() => (keyof Entity)[];
|
|
4
|
-
declare function EntityBodyMixin<Entity extends BaseEntity>(entity: Type<Entity>,
|
|
4
|
+
declare function EntityBodyMixin<Entity extends BaseEntity>(entity: Type<Entity>, optional?: boolean, additionalKeysToExclude?: (keyof Entity)[]): {
|
|
5
5
|
new (...args: any[]): {};
|
|
6
6
|
apply(this: Function, thisArg: any, argArray?: any): any;
|
|
7
7
|
call(this: Function, thisArg: any, ...argArray: any[]): any;
|
|
@@ -12,14 +12,14 @@ const baseEntityKeysToExclude = () => [
|
|
|
12
12
|
'__v',
|
|
13
13
|
];
|
|
14
14
|
exports.baseEntityKeysToExclude = baseEntityKeysToExclude;
|
|
15
|
-
function EntityBodyMixin(entity,
|
|
15
|
+
function EntityBodyMixin(entity, optional = false, additionalKeysToExclude) {
|
|
16
16
|
const keysToExclude = [
|
|
17
17
|
...baseEntityKeysToExclude(),
|
|
18
18
|
...(additionalKeysToExclude ?? []),
|
|
19
19
|
];
|
|
20
20
|
class EntityBody extends (0, swagger_1.OmitType)(entity, keysToExclude) {
|
|
21
21
|
}
|
|
22
|
-
return
|
|
22
|
+
return optional ? (0, swagger_1.PartialType)(EntityBody) : EntityBody;
|
|
23
23
|
}
|
|
24
24
|
exports.EntityBodyMixin = EntityBodyMixin;
|
|
25
25
|
//# sourceMappingURL=entity-body.mixin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-body.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/entity-body.mixin.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AAGxD,MAAM,uBAAuB,GAAG,GAA8B,EAAE,CAC9D;IACE,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,KAAK;IACL,KAAK;CACc,CAAC;AAkBf,0DAAuB;AAhBhC,SAAS,eAAe,CACtB,MAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"entity-body.mixin.js","sourceRoot":"","sources":["../../../libs/dynamic-api/src/mixins/entity-body.mixin.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AAGxD,MAAM,uBAAuB,GAAG,GAA8B,EAAE,CAC9D;IACE,IAAI;IACJ,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,KAAK;IACL,KAAK;CACc,CAAC;AAkBf,0DAAuB;AAhBhC,SAAS,eAAe,CACtB,MAAoB,EACpB,QAAQ,GAAG,KAAK,EAChB,uBAA0C;IAE1C,MAAM,aAAa,GAAG;QACpB,GAAG,uBAAuB,EAAU;QACpC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;KACnC,CAAC;IAGF,MAAM,UAAW,SAAQ,IAAA,kBAAQ,EAAC,MAAM,EAAE,aAAa,CAAC;KAAG;IAE3D,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAA,qBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC;AAEiC,0CAAe"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { BaseEntity } from '../../models';
|
|
3
|
+
declare function CreateManyBodyMixin<Entity extends BaseEntity>(entity: Type<Entity>, CreateManyCustomBody?: Type): {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
[x: string]: any;
|
|
6
|
+
};
|
|
7
|
+
apply(this: Function, thisArg: any, argArray?: any): any;
|
|
8
|
+
call(this: Function, thisArg: any, ...argArray: any[]): any;
|
|
9
|
+
bind(this: Function, thisArg: any, ...argArray: any[]): any;
|
|
10
|
+
toString(): string;
|
|
11
|
+
readonly length: number;
|
|
12
|
+
arguments: any;
|
|
13
|
+
caller: Function;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
[Symbol.hasInstance](value: any): boolean;
|
|
16
|
+
};
|
|
17
|
+
export { CreateManyBodyMixin };
|
|
@@ -9,22 +9,27 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.CreateManyBodyMixin = void 0;
|
|
13
13
|
const swagger_1 = require("@nestjs/swagger");
|
|
14
14
|
const class_transformer_1 = require("class-transformer");
|
|
15
15
|
const class_validator_1 = require("class-validator");
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const mixins_1 = require("../../mixins");
|
|
17
|
+
function CreateManyBodyMixin(entity, CreateManyCustomBody) {
|
|
18
|
+
class ToCreate extends (0, mixins_1.EntityBodyMixin)(entity) {
|
|
19
|
+
}
|
|
20
|
+
class CreateManyDefaultDto {
|
|
18
21
|
}
|
|
19
22
|
__decorate([
|
|
20
|
-
(0, swagger_1.ApiProperty)({ type: [
|
|
23
|
+
(0, swagger_1.ApiProperty)({ type: [ToCreate] }),
|
|
21
24
|
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
22
|
-
(0, class_validator_1.IsInstance)(
|
|
25
|
+
(0, class_validator_1.IsInstance)(ToCreate, { each: true }),
|
|
23
26
|
(0, class_validator_1.ArrayMinSize)(1),
|
|
24
|
-
(0, class_transformer_1.
|
|
27
|
+
(0, class_transformer_1.Transform)(({ value }) => value?.map((e) => (0, class_transformer_1.plainToInstance)(ToCreate, e))),
|
|
25
28
|
__metadata("design:type", Array)
|
|
26
|
-
],
|
|
27
|
-
|
|
29
|
+
], CreateManyDefaultDto.prototype, "list", void 0);
|
|
30
|
+
class CreateManyDto extends (CreateManyCustomBody ?? CreateManyDefaultDto) {
|
|
31
|
+
}
|
|
32
|
+
return CreateManyDto;
|
|
28
33
|
}
|
|
29
|
-
exports.
|
|
30
|
-
//# sourceMappingURL=create-many-body
|
|
34
|
+
exports.CreateManyBodyMixin = CreateManyBodyMixin;
|
|
35
|
+
//# sourceMappingURL=create-many-body.mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-many-body.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-body.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA8C;AAC9C,yDAA+D;AAC/D,qDAA2E;AAC3E,yCAA+C;AAG/C,SAAS,mBAAmB,CAA4B,MAAoB,EAAE,oBAA2B;IACvG,MAAM,QAAS,SAAQ,IAAA,wBAAe,EAAC,MAAM,CAAC;KAAG;IAEjD,MAAM,oBAAoB;KAOzB;IADC;QALC,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAA,4BAAU,EAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpC,IAAA,8BAAY,EAAC,CAAC,CAAC;QACf,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;;sDACjE;IAGnB,MAAM,aAAc,SAAQ,CAC1B,oBAAoB,IAAI,oBAAoB,CAC7C;KAAG;IAEJ,OAAO,aAAa,CAAC;AACvB,CAAC;AAEQ,kDAAmB"}
|
|
@@ -3,8 +3,8 @@ import { CreateManyService } from './create-many-service.interface';
|
|
|
3
3
|
type CreateManyBody<T = any> = {
|
|
4
4
|
list: Partial<T>[];
|
|
5
5
|
};
|
|
6
|
-
interface CreateManyController<Entity extends BaseEntity> {
|
|
7
|
-
createMany(body: CreateManyBody<Entity>): Promise<Entity[]>;
|
|
6
|
+
interface CreateManyController<Entity extends BaseEntity, Response = any> {
|
|
7
|
+
createMany(body: CreateManyBody<Entity>): Promise<(Entity | Response)[]>;
|
|
8
8
|
}
|
|
9
9
|
type CreateManyControllerConstructor<Entity extends BaseEntity> = new (service: CreateManyService<Entity>) => CreateManyController<Entity>;
|
|
10
10
|
export type { CreateManyBody, CreateManyController, CreateManyControllerConstructor };
|
|
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
|
|
|
2
2
|
import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { CreateManyControllerConstructor } from './create-many-controller.interface';
|
|
5
|
-
declare function CreateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyControllerConstructor<Entity>;
|
|
5
|
+
declare function CreateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyControllerConstructor<Entity>;
|
|
6
6
|
export { CreateManyControllerMixin };
|
|
@@ -14,15 +14,31 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.CreateManyControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
+
const lodash_1 = require("lodash");
|
|
17
18
|
const builders_1 = require("../../builders");
|
|
18
19
|
const helpers_1 = require("../../helpers");
|
|
19
20
|
const mixins_1 = require("../../mixins");
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const create_many_body_mixin_1 = require("./create-many-body.mixin");
|
|
22
|
+
const create_many_presenter_mixin_1 = require("./create-many-presenter.mixin");
|
|
23
|
+
function CreateManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
24
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
25
|
+
class CreateManyBody extends (0, create_many_body_mixin_1.CreateManyBodyMixin)(entity, dTOs?.body) {
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(CreateManyBody, 'name', {
|
|
28
|
+
value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
class CreateManyPresenter extends (0, create_many_presenter_mixin_1.CreateManyPresenterMixin)(entity, dTOs?.presenter) {
|
|
32
|
+
}
|
|
33
|
+
Object.defineProperty(CreateManyPresenter, 'name', {
|
|
34
|
+
value: dTOs?.presenter
|
|
35
|
+
? `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
36
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
23
39
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
24
|
-
body:
|
|
25
|
-
presenter:
|
|
40
|
+
body: CreateManyBody,
|
|
41
|
+
presenter: CreateManyPresenter,
|
|
26
42
|
});
|
|
27
43
|
class CreateManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
28
44
|
}
|
|
@@ -32,7 +48,17 @@ function CreateManyControllerMixin(entity, controllerOptions, routeConfig, versi
|
|
|
32
48
|
this.entity = entity;
|
|
33
49
|
}
|
|
34
50
|
async createMany(body) {
|
|
35
|
-
|
|
51
|
+
if (!('list' in body &&
|
|
52
|
+
Array.isArray(body.list) &&
|
|
53
|
+
body.list.length &&
|
|
54
|
+
body.list.every((e) => !(0, lodash_1.isEmpty)(e)))) {
|
|
55
|
+
throw new common_1.BadRequestException('Invalid request body');
|
|
56
|
+
}
|
|
57
|
+
let toCreateList = body.list;
|
|
58
|
+
const toEntities = CreateManyBody.toEntities;
|
|
59
|
+
const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList);
|
|
60
|
+
const fromEntities = CreateManyPresenter.fromEntities;
|
|
61
|
+
return fromEntities ? fromEntities(list) : list;
|
|
36
62
|
}
|
|
37
63
|
}
|
|
38
64
|
__decorate([
|
|
@@ -40,7 +66,7 @@ function CreateManyControllerMixin(entity, controllerOptions, routeConfig, versi
|
|
|
40
66
|
(0, common_1.UseGuards)(CreateManyPoliciesGuard),
|
|
41
67
|
__param(0, (0, common_1.Body)()),
|
|
42
68
|
__metadata("design:type", Function),
|
|
43
|
-
__metadata("design:paramtypes", [
|
|
69
|
+
__metadata("design:paramtypes", [CreateManyBody]),
|
|
44
70
|
__metadata("design:returntype", Promise)
|
|
45
71
|
], BaseCreateManyController.prototype, "createMany", null);
|
|
46
72
|
Object.defineProperty(BaseCreateManyController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"create-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-controller.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { CreateManyBody } from './create-many-controller.interface';
|
|
5
5
|
import { CreateManyService } from './create-many-service.interface';
|
|
6
|
-
interface CreateManyGateway<Entity extends BaseEntity> {
|
|
7
|
-
createMany(socket: ExtendedSocket, body: CreateManyBody<Entity>): GatewayResponse<Entity[]>;
|
|
6
|
+
interface CreateManyGateway<Entity extends BaseEntity, Response = any> {
|
|
7
|
+
createMany(socket: ExtendedSocket, body: CreateManyBody<Entity>): GatewayResponse<(Entity | Response)[]>;
|
|
8
8
|
}
|
|
9
9
|
type CreateManyGatewayConstructor<Entity extends BaseEntity> = new (service: CreateManyService<Entity>, jwtService: JwtService) => CreateManyGateway<Entity>;
|
|
10
10
|
export type { CreateManyGateway, CreateManyGatewayConstructor };
|
|
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
|
|
|
2
2
|
import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { CreateManyGatewayConstructor } from './create-many-gateway.interface';
|
|
5
|
-
declare function CreateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyGatewayConstructor<Entity>;
|
|
5
|
+
declare function CreateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateManyGatewayConstructor<Entity>;
|
|
6
6
|
export { CreateManyGatewayMixin };
|
|
@@ -19,9 +19,24 @@ const lodash_1 = require("lodash");
|
|
|
19
19
|
const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
|
|
20
20
|
const gateways_1 = require("../../gateways");
|
|
21
21
|
const helpers_1 = require("../../helpers");
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const create_many_body_mixin_1 = require("./create-many-body.mixin");
|
|
23
|
+
const create_many_presenter_mixin_1 = require("./create-many-presenter.mixin");
|
|
24
|
+
function CreateManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
25
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
26
|
+
class CreateManyData extends (0, create_many_body_mixin_1.CreateManyBodyMixin)(entity, dTOs?.body) {
|
|
27
|
+
}
|
|
28
|
+
Object.defineProperty(CreateManyData, 'name', {
|
|
29
|
+
value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
|
|
30
|
+
writable: false,
|
|
31
|
+
});
|
|
32
|
+
class CreateManyResponse extends (0, create_many_presenter_mixin_1.CreateManyPresenterMixin)(entity, dTOs?.presenter) {
|
|
33
|
+
}
|
|
34
|
+
Object.defineProperty(CreateManyResponse, 'name', {
|
|
35
|
+
value: dTOs?.presenter
|
|
36
|
+
? `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
37
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
|
|
38
|
+
writable: false,
|
|
39
|
+
});
|
|
25
40
|
class BaseCreateManyGateway extends gateways_1.BaseGateway {
|
|
26
41
|
constructor(service, jwtService) {
|
|
27
42
|
super(jwtService);
|
|
@@ -30,14 +45,20 @@ function CreateManyGatewayMixin(entity, controllerOptions, routeConfig, version)
|
|
|
30
45
|
this.entity = entity;
|
|
31
46
|
}
|
|
32
47
|
async createMany(socket, body) {
|
|
33
|
-
if (!('list' in body &&
|
|
48
|
+
if (!('list' in body &&
|
|
49
|
+
Array.isArray(body.list) &&
|
|
50
|
+
body.list.length &&
|
|
51
|
+
body.list.every((e) => !(0, lodash_1.isEmpty)(e)))) {
|
|
34
52
|
throw new websockets_1.WsException('Invalid request body');
|
|
35
53
|
}
|
|
36
54
|
this.addUserToSocket(socket, isPublic);
|
|
37
|
-
|
|
55
|
+
let toCreateList = body.list;
|
|
56
|
+
const toEntities = CreateManyData.toEntities;
|
|
57
|
+
const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList);
|
|
58
|
+
const fromEntities = CreateManyResponse.fromEntities;
|
|
38
59
|
return {
|
|
39
60
|
event,
|
|
40
|
-
data,
|
|
61
|
+
data: fromEntities ? fromEntities(list) : list,
|
|
41
62
|
};
|
|
42
63
|
}
|
|
43
64
|
}
|
|
@@ -47,8 +68,8 @@ function CreateManyGatewayMixin(entity, controllerOptions, routeConfig, version)
|
|
|
47
68
|
__param(0, (0, websockets_1.ConnectedSocket)()),
|
|
48
69
|
__param(1, (0, websockets_1.MessageBody)()),
|
|
49
70
|
__metadata("design:type", Function),
|
|
50
|
-
__metadata("design:paramtypes", [Object,
|
|
51
|
-
__metadata("design:returntype",
|
|
71
|
+
__metadata("design:paramtypes", [Object, CreateManyData]),
|
|
72
|
+
__metadata("design:returntype", Object)
|
|
52
73
|
], BaseCreateManyGateway.prototype, "createMany", null);
|
|
53
74
|
Object.defineProperty(BaseCreateManyGateway, 'name', {
|
|
54
75
|
value: `Base${(0, helpers_1.provideName)(routeType, displayedName, version, 'Gateway')}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"create-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-gateway.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { BaseEntity } from '../../models';
|
|
3
|
+
declare function CreateManyPresenterMixin<Entity extends BaseEntity>(entity: Type<Entity>, CreateManyCustomPresenter?: Type): {
|
|
4
|
+
new (...args: any[]): {
|
|
5
|
+
[x: string]: any;
|
|
6
|
+
};
|
|
7
|
+
apply(this: Function, thisArg: any, argArray?: any): any;
|
|
8
|
+
call(this: Function, thisArg: any, ...argArray: any[]): any;
|
|
9
|
+
bind(this: Function, thisArg: any, ...argArray: any[]): any;
|
|
10
|
+
toString(): string;
|
|
11
|
+
readonly length: number;
|
|
12
|
+
arguments: any;
|
|
13
|
+
caller: Function;
|
|
14
|
+
readonly name: string;
|
|
15
|
+
[Symbol.hasInstance](value: any): boolean;
|
|
16
|
+
};
|
|
17
|
+
export { CreateManyPresenterMixin };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateManyPresenterMixin = void 0;
|
|
4
|
+
const mixins_1 = require("../../mixins");
|
|
5
|
+
function CreateManyPresenterMixin(entity, CreateManyCustomPresenter) {
|
|
6
|
+
class CreateManyDto extends (CreateManyCustomPresenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
7
|
+
}
|
|
8
|
+
return CreateManyDto;
|
|
9
|
+
}
|
|
10
|
+
exports.CreateManyPresenterMixin = CreateManyPresenterMixin;
|
|
11
|
+
//# sourceMappingURL=create-many-presenter.mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-many-presenter.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/create-many-presenter.mixin.ts"],"names":[],"mappings":";;;AACA,yCAAoD;AAGpD,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,yBAAgC;IAEhC,MAAM,aAAc,SAAQ,CAC1B,yBAAyB,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAC1D;KAAG;IAEJ,OAAO,aAAa,CAAC;AACvB,CAAC;AAEQ,4DAAwB"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export * from './base-create-many.service';
|
|
2
2
|
export * from './create-many.helper';
|
|
3
3
|
export * from './create-many.module';
|
|
4
|
-
export * from './create-many-body
|
|
4
|
+
export * from './create-many-body.mixin';
|
|
5
5
|
export * from './create-many-controller.interface';
|
|
6
6
|
export * from './create-many-controller.mixin';
|
|
7
7
|
export * from './create-many-gateway.interface';
|
|
8
8
|
export * from './create-many-gateway.mixin';
|
|
9
|
+
export * from './create-many-presenter.mixin';
|
|
9
10
|
export * from './create-many-service.interface';
|
|
@@ -17,10 +17,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./base-create-many.service"), exports);
|
|
18
18
|
__exportStar(require("./create-many.helper"), exports);
|
|
19
19
|
__exportStar(require("./create-many.module"), exports);
|
|
20
|
-
__exportStar(require("./create-many-body
|
|
20
|
+
__exportStar(require("./create-many-body.mixin"), exports);
|
|
21
21
|
__exportStar(require("./create-many-controller.interface"), exports);
|
|
22
22
|
__exportStar(require("./create-many-controller.mixin"), exports);
|
|
23
23
|
__exportStar(require("./create-many-gateway.interface"), exports);
|
|
24
24
|
__exportStar(require("./create-many-gateway.mixin"), exports);
|
|
25
|
+
__exportStar(require("./create-many-presenter.mixin"), exports);
|
|
25
26
|
__exportStar(require("./create-many-service.interface"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,2DAAyC;AACzC,qEAAmD;AACnD,iEAA+C;AAC/C,kEAAgD;AAChD,8DAA4C;AAC5C,gEAA8C;AAC9C,kEAAgD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { CreateOneService } from './create-one-service.interface';
|
|
3
|
-
interface CreateOneController<Entity extends BaseEntity> {
|
|
4
|
-
createOne<Body>(body: Body): Promise<Entity |
|
|
3
|
+
interface CreateOneController<Entity extends BaseEntity, Response = any> {
|
|
4
|
+
createOne<Body>(body: Body): Promise<Entity | Response>;
|
|
5
5
|
}
|
|
6
6
|
type CreateOneControllerConstructor<Entity extends BaseEntity> = new (service: CreateOneService<Entity>) => CreateOneController<Entity>;
|
|
7
7
|
export type { CreateOneController, CreateOneControllerConstructor };
|
|
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
|
|
|
2
2
|
import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { CreateOneControllerConstructor } from './create-one-controller.interface';
|
|
5
|
-
declare function CreateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneControllerConstructor<Entity>;
|
|
5
|
+
declare function CreateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneControllerConstructor<Entity>;
|
|
6
6
|
export { CreateOneControllerMixin };
|
|
@@ -17,12 +17,25 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const builders_1 = require("../../builders");
|
|
18
18
|
const helpers_1 = require("../../helpers");
|
|
19
19
|
const mixins_1 = require("../../mixins");
|
|
20
|
-
function CreateOneControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
function CreateOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
21
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
22
|
+
class CreateOneBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity)) {
|
|
23
|
+
}
|
|
24
|
+
Object.defineProperty(CreateOneBody, 'name', {
|
|
25
|
+
value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
|
|
26
|
+
writable: false,
|
|
27
|
+
});
|
|
28
|
+
class CreateOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
29
|
+
}
|
|
30
|
+
Object.defineProperty(CreateOnePresenter, 'name', {
|
|
31
|
+
value: dTOs?.presenter
|
|
32
|
+
? `CreateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
33
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
|
|
34
|
+
writable: false,
|
|
35
|
+
});
|
|
23
36
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
24
|
-
body:
|
|
25
|
-
presenter:
|
|
37
|
+
body: CreateOneBody,
|
|
38
|
+
presenter: CreateOnePresenter,
|
|
26
39
|
});
|
|
27
40
|
class CreateOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
28
41
|
}
|
|
@@ -32,7 +45,10 @@ function CreateOneControllerMixin(entity, controllerOptions, routeConfig, versio
|
|
|
32
45
|
this.entity = entity;
|
|
33
46
|
}
|
|
34
47
|
async createOne(body) {
|
|
35
|
-
|
|
48
|
+
const toEntity = CreateOneBody.toEntity;
|
|
49
|
+
const entity = await this.service.createOne(toEntity ? toEntity(body) : body);
|
|
50
|
+
const fromEntity = CreateOnePresenter.fromEntity;
|
|
51
|
+
return fromEntity ? fromEntity(entity) : entity;
|
|
36
52
|
}
|
|
37
53
|
}
|
|
38
54
|
__decorate([
|
|
@@ -40,7 +56,7 @@ function CreateOneControllerMixin(entity, controllerOptions, routeConfig, versio
|
|
|
40
56
|
(0, common_1.UseGuards)(CreateOnePoliciesGuard),
|
|
41
57
|
__param(0, (0, common_1.Body)()),
|
|
42
58
|
__metadata("design:type", Function),
|
|
43
|
-
__metadata("design:paramtypes", [
|
|
59
|
+
__metadata("design:paramtypes", [CreateOneBody]),
|
|
44
60
|
__metadata("design:returntype", Promise)
|
|
45
61
|
], BaseCreateOneController.prototype, "createOne", null);
|
|
46
62
|
Object.defineProperty(BaseCreateOneController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"create-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAwD;AACxD,2CAAmG;AAEnG,yCAA+F;AAK/F,SAAS,wBAAwB,CAC/B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,gBAAgB,GACjB,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,CACZ,CAAC;IAEF,MAAM,aAAc,SAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,CAAC,CAAC;KAAG;IAEtE,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE;QAC3C,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,KAAK;QACpE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,kBAAmB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;KAAG;IAErF,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,YAAY,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YAClE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;QAC3D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAI,iCAAsB,CACvD,SAAS,EACT,MAAM,EACN,WAAW,CAAC,OAAO,EACnB,OAAO,EACP,WAAW,EACX,QAAQ,EACR;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,kBAAkB;KAC9B,CACF,CAAC;IAEF,MAAM,sBAAuB,SAAQ,IAAA,iCAAwB,EAC3D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,uBAAuB;QAG3B,YAA+B,OAAiC;YAAjC,YAAO,GAAP,OAAO,CAA0B;YAF7C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CAAS,IAAmB;YACzC,MAAM,QAAQ,GACZ,aACD,CAAC,QAAQ,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CAAC,CAAC;YAEjG,MAAM,UAAU,GACd,kBACD,CAAC,UAAU,CAAC;YAEb,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,CAAC;KACF;IAbO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,sBAAsB,CAAC;QACjB,WAAA,IAAA,aAAI,GAAE,CAAA;;yCAAO,aAAa;;4DAY1C;IAGH,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACrD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC9E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAEQ,4DAAwB"}
|
|
@@ -2,8 +2,8 @@ import { JwtService } from '@nestjs/jwt';
|
|
|
2
2
|
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { CreateOneService } from './create-one-service.interface';
|
|
5
|
-
interface CreateOneGateway<Entity extends BaseEntity> {
|
|
6
|
-
createOne<Body>(socket: ExtendedSocket, body: Body): GatewayResponse<Entity |
|
|
5
|
+
interface CreateOneGateway<Entity extends BaseEntity, Response = any> {
|
|
6
|
+
createOne<Body>(socket: ExtendedSocket, body: Body): GatewayResponse<Entity | Response>;
|
|
7
7
|
}
|
|
8
8
|
type CreateOneGatewayConstructor<Entity extends BaseEntity> = new (service: CreateOneService<Entity>, jwtService: JwtService) => CreateOneGateway<Entity>;
|
|
9
9
|
export type { CreateOneGateway, CreateOneGatewayConstructor };
|
|
@@ -2,5 +2,5 @@ import { Type } from '@nestjs/common';
|
|
|
2
2
|
import { DynamicApiControllerOptions, DynamicAPIRouteConfig } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { CreateOneGatewayConstructor } from './create-one-gateway.interface';
|
|
5
|
-
declare function CreateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneGatewayConstructor<Entity>;
|
|
5
|
+
declare function CreateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): CreateOneGatewayConstructor<Entity>;
|
|
6
6
|
export { CreateOneGatewayMixin };
|