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
|
@@ -19,10 +19,23 @@ 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
|
-
const { routeType, displayedName, isPublic,
|
|
25
|
-
|
|
22
|
+
const mixins_1 = require("../../mixins");
|
|
23
|
+
function CreateOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
24
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
25
|
+
class CreateOneData extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity)) {
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(CreateOneData, 'name', {
|
|
28
|
+
value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
class CreateOneResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
32
|
+
}
|
|
33
|
+
Object.defineProperty(CreateOneResponse, 'name', {
|
|
34
|
+
value: dTOs?.presenter
|
|
35
|
+
? `CreateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
36
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
26
39
|
class BaseCreateOneGateway extends gateways_1.BaseGateway {
|
|
27
40
|
constructor(service, jwtService) {
|
|
28
41
|
super(jwtService);
|
|
@@ -35,10 +48,12 @@ function CreateOneGatewayMixin(entity, controllerOptions, routeConfig, version)
|
|
|
35
48
|
throw new websockets_1.WsException('Invalid request body');
|
|
36
49
|
}
|
|
37
50
|
this.addUserToSocket(socket, isPublic);
|
|
38
|
-
const
|
|
51
|
+
const toEntity = CreateOneData.toEntity;
|
|
52
|
+
const entity = await this.service.createOne(toEntity ? toEntity(body) : body);
|
|
53
|
+
const fromEntity = CreateOneResponse.fromEntity;
|
|
39
54
|
return {
|
|
40
55
|
event,
|
|
41
|
-
data,
|
|
56
|
+
data: fromEntity ? fromEntity(entity) : entity,
|
|
42
57
|
};
|
|
43
58
|
}
|
|
44
59
|
}
|
|
@@ -48,7 +63,7 @@ function CreateOneGatewayMixin(entity, controllerOptions, routeConfig, version)
|
|
|
48
63
|
__param(0, (0, websockets_1.ConnectedSocket)()),
|
|
49
64
|
__param(1, (0, websockets_1.MessageBody)()),
|
|
50
65
|
__metadata("design:type", Function),
|
|
51
|
-
__metadata("design:paramtypes", [Object,
|
|
66
|
+
__metadata("design:paramtypes", [Object, CreateOneData]),
|
|
52
67
|
__metadata("design:returntype", Promise)
|
|
53
68
|
], BaseCreateOneGateway.prototype, "createOne", null);
|
|
54
69
|
Object.defineProperty(BaseCreateOneGateway, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"create-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/create-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAiC;AACjC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAqE;AAKrE,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,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,MAAM;QACrE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,iBAAkB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAAC;KAAG;IAEpF,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,YAAY,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACjE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,oBAAqB,SAAQ,sBAAmB;QAGpD,YACqB,OAAiC,EACjC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA0B;YACjC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CACM,MAA8B,EAClC,IAAmB;YAElC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,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,iBACD,CAAC,UAAU,CAAC;YAEb,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAoB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;aAClE,CAAC;QACJ,CAAC;KACF;IAzBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,aAAa;;yDAsBnC;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseDeleteManyService = void 0;
|
|
4
|
-
const
|
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
|
5
5
|
const dtos_1 = require("../../dtos");
|
|
6
6
|
const services_1 = require("../../services");
|
|
7
7
|
class BaseDeleteManyService extends services_1.BaseService {
|
|
@@ -24,10 +24,10 @@ class BaseDeleteManyService extends services_1.BaseService {
|
|
|
24
24
|
else {
|
|
25
25
|
op = await this.model.deleteMany({ _id: { $in: ids } }).exec();
|
|
26
26
|
}
|
|
27
|
-
return (0,
|
|
27
|
+
return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: op.deletedCount });
|
|
28
28
|
}
|
|
29
29
|
catch (error) {
|
|
30
|
-
return (0,
|
|
30
|
+
return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: 0 });
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-delete-many.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/base-delete-many.service.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"base-delete-many.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/base-delete-many.service.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,qCAA6C;AAG7C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAG3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;QAC5B,IAAI,CAAC;YACH,IAAI,EAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;qBAC/B,UAAU,CACT;oBACE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;oBACjB,SAAS,EAAE,KAAK;iBACjB,EACD,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrD;qBACA,IAAI,EAAE,CAAC;gBAER,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,CAAC;YAED,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AAjCD,sDAiCC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ManyEntityQuery
|
|
1
|
+
import { ManyEntityQuery } from '../../dtos';
|
|
2
|
+
import { DeleteResult } from '../../interfaces';
|
|
2
3
|
import { BaseEntity } from '../../models';
|
|
3
4
|
import { DeleteManyService } from './delete-many-service.interface';
|
|
4
|
-
interface DeleteManyController<
|
|
5
|
-
deleteMany(query: ManyEntityQuery): Promise<
|
|
5
|
+
interface DeleteManyController<_Entity extends BaseEntity, Response = any> {
|
|
6
|
+
deleteMany(query: ManyEntityQuery): Promise<DeleteResult | Response>;
|
|
6
7
|
}
|
|
7
8
|
type DeleteManyControllerConstructor<Entity extends BaseEntity> = new (service: DeleteManyService<Entity>) => DeleteManyController<Entity>;
|
|
8
9
|
export type { DeleteManyController, DeleteManyControllerConstructor };
|
|
@@ -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 { DeleteManyControllerConstructor } from './delete-many-controller.interface';
|
|
5
|
-
declare function DeleteManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyControllerConstructor<Entity>;
|
|
5
|
+
declare function DeleteManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyControllerConstructor<Entity>;
|
|
6
6
|
export { DeleteManyControllerMixin };
|
|
@@ -14,15 +14,22 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DeleteManyControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
-
const builder_pattern_1 = require("builder-pattern");
|
|
18
17
|
const builders_1 = require("../../builders");
|
|
19
18
|
const dtos_1 = require("../../dtos");
|
|
20
19
|
const helpers_1 = require("../../helpers");
|
|
21
20
|
const mixins_1 = require("../../mixins");
|
|
22
|
-
function DeleteManyControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
23
|
-
const { routeType, displayedName, description, isPublic,
|
|
21
|
+
function DeleteManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
22
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
23
|
+
class DeleteManyPresenter extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(DeleteManyPresenter, 'name', {
|
|
26
|
+
value: dTOs?.presenter
|
|
27
|
+
? `DeleteMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
28
|
+
: `DeleteResultPresenter`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
24
31
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
25
|
-
presenter:
|
|
32
|
+
presenter: DeleteManyPresenter,
|
|
26
33
|
});
|
|
27
34
|
class DeleteManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
28
35
|
}
|
|
@@ -32,8 +39,9 @@ function DeleteManyControllerMixin(entity, controllerOptions, routeConfig, versi
|
|
|
32
39
|
this.entity = entity;
|
|
33
40
|
}
|
|
34
41
|
async deleteMany({ ids }) {
|
|
35
|
-
const
|
|
36
|
-
|
|
42
|
+
const deleteResult = await this.service.deleteMany(ids);
|
|
43
|
+
const fromDeleteResult = DeleteManyPresenter.fromDeleteResult;
|
|
44
|
+
return fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult;
|
|
37
45
|
}
|
|
38
46
|
}
|
|
39
47
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"delete-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAA8D;AAC9D,2CAAmG;AAEnG,yCAAwD;AAKxD,SAAS,yBAAyB,CAChC,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,mBAAoB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,sBAAe,CAAC;KAAG;IAEzE,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACjD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,aAAa,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YACnE,CAAC,CAAC,uBAAuB;QAC3B,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,SAAS,EAAE,mBAAmB;KAC/B,CACF,CAAC;IAEF,MAAM,uBAAwB,SAAQ,IAAA,iCAAwB,EAC5D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,wBAAwB;QAG5B,YAA+B,OAAkC;YAAlC,YAAO,GAAP,OAAO,CAA2B;YAF9C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,UAAU,CAAU,EAAE,GAAG,EAAmB;YAChD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAExD,MAAM,gBAAgB,GACpB,mBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAsB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC/F,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QACjB,WAAA,IAAA,cAAK,GAAE,CAAA;;yCAAU,sBAAe;;8DAQjD;IAGH,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE;QACtD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC/E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAEQ,8DAAyB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { JwtService } from '@nestjs/jwt';
|
|
2
|
-
import { ManyEntityQuery
|
|
3
|
-
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
2
|
+
import { ManyEntityQuery } from '../../dtos';
|
|
3
|
+
import { DeleteResult, ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
4
4
|
import { BaseEntity } from '../../models';
|
|
5
5
|
import { DeleteManyService } from './delete-many-service.interface';
|
|
6
|
-
interface DeleteManyGateway<
|
|
7
|
-
deleteMany(socket: ExtendedSocket, body: ManyEntityQuery): GatewayResponse<
|
|
6
|
+
interface DeleteManyGateway<_Entity extends BaseEntity, Response = any> {
|
|
7
|
+
deleteMany(socket: ExtendedSocket, body: ManyEntityQuery): GatewayResponse<(DeleteResult | Response)>;
|
|
8
8
|
}
|
|
9
9
|
type DeleteManyGatewayConstructor<Entity extends BaseEntity> = new (service: DeleteManyService<Entity>, jwtService: JwtService) => DeleteManyGateway<Entity>;
|
|
10
10
|
export type { DeleteManyGateway, DeleteManyGatewayConstructor };
|
|
@@ -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 { DeleteManyGatewayConstructor } from './delete-many-gateway.interface';
|
|
5
|
-
declare function DeleteManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyGatewayConstructor<Entity>;
|
|
5
|
+
declare function DeleteManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteManyGatewayConstructor<Entity>;
|
|
6
6
|
export { DeleteManyGatewayMixin };
|
|
@@ -15,14 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.DeleteManyGatewayMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const websockets_1 = require("@nestjs/websockets");
|
|
18
|
-
const lodash_1 = require("lodash");
|
|
19
18
|
const dtos_1 = require("../../dtos");
|
|
20
19
|
const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
|
|
21
20
|
const gateways_1 = require("../../gateways");
|
|
22
21
|
const helpers_1 = require("../../helpers");
|
|
23
|
-
function DeleteManyGatewayMixin(entity, controllerOptions, routeConfig, version) {
|
|
24
|
-
const { routeType, displayedName, isPublic, } = (0, helpers_1.
|
|
25
|
-
|
|
22
|
+
function DeleteManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
23
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
24
|
+
class DeleteManyResponse extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(DeleteManyResponse, 'name', {
|
|
27
|
+
value: dTOs?.presenter
|
|
28
|
+
? `DeleteMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
29
|
+
: `DeleteResultResponse`,
|
|
30
|
+
writable: false,
|
|
31
|
+
});
|
|
26
32
|
class BaseDeleteManyGateway extends gateways_1.BaseGateway {
|
|
27
33
|
constructor(service, jwtService) {
|
|
28
34
|
super(jwtService);
|
|
@@ -35,9 +41,11 @@ function DeleteManyGatewayMixin(entity, controllerOptions, routeConfig, version)
|
|
|
35
41
|
throw new websockets_1.WsException('Invalid request body');
|
|
36
42
|
}
|
|
37
43
|
this.addUserToSocket(socket, isPublic);
|
|
44
|
+
const deleteResult = await this.service.deleteMany(body.ids);
|
|
45
|
+
const fromDeleteResult = DeleteManyResponse.fromDeleteResult;
|
|
38
46
|
return {
|
|
39
47
|
event,
|
|
40
|
-
data:
|
|
48
|
+
data: fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult,
|
|
41
49
|
};
|
|
42
50
|
}
|
|
43
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"delete-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-many/delete-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,qCAA8D;AAC9D,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAM5E,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,MAAM,kBAAmB,SAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,sBAAe,CAAC;KAAG;IAExE,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,aAAa,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YAClE,CAAC,CAAC,sBAAsB;QAC1B,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,qBAAsB,SAAQ,sBAAmB;QAGrD,YACqB,OAAkC,EAClC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA2B;YAClC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,UAAU,CACK,MAA8B,EAClC,IAAqB;YAEpC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE7D,MAAM,gBAAgB,GACpB,kBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAqB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;aAC3F,CAAC;QACJ,CAAC;KACF;IArBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,sBAAe;;2DAkBrC;IAGH,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;QACnD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEQ,wDAAsB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseDeleteOneService = void 0;
|
|
4
|
-
const
|
|
4
|
+
const class_transformer_1 = require("class-transformer");
|
|
5
5
|
const dtos_1 = require("../../dtos");
|
|
6
6
|
const services_1 = require("../../services");
|
|
7
7
|
class BaseDeleteOneService extends services_1.BaseService {
|
|
@@ -24,10 +24,10 @@ class BaseDeleteOneService extends services_1.BaseService {
|
|
|
24
24
|
else {
|
|
25
25
|
op = await this.model.deleteOne({ _id: id }).exec();
|
|
26
26
|
}
|
|
27
|
-
return (0,
|
|
27
|
+
return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: op.deletedCount });
|
|
28
28
|
}
|
|
29
29
|
catch (error) {
|
|
30
|
-
return (0,
|
|
30
|
+
return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: 0 });
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-delete-one.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/base-delete-one.service.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"base-delete-one.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/base-delete-one.service.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AAEpD,qCAA6C;AAG7C,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAG3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,IAAI,CAAC;YACH,IAAI,EAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK;qBAC/B,SAAS,CACR;oBACE,GAAG,EAAE,EAAE;oBACP,SAAS,EAAE,KAAK;iBACjB,EACD,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CACrD;qBACA,IAAI,EAAE,CAAC;gBAER,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACtD,CAAC;YAED,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AAjCD,oDAiCC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DeleteResult } from '../../interfaces';
|
|
2
2
|
import { BaseEntity } from '../../models';
|
|
3
3
|
import { DeleteOneService } from './delete-one-service.interface';
|
|
4
|
-
interface DeleteOneController<
|
|
5
|
-
deleteOne(id: string): Promise<
|
|
4
|
+
interface DeleteOneController<_Entity extends BaseEntity, Response = any> {
|
|
5
|
+
deleteOne(id: string): Promise<DeleteResult | Response>;
|
|
6
6
|
}
|
|
7
7
|
type DeleteOneControllerConstructor<Entity extends BaseEntity> = new (service: DeleteOneService<Entity>) => DeleteOneController<Entity>;
|
|
8
8
|
export type { DeleteOneController, DeleteOneControllerConstructor };
|
|
@@ -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 { DeleteOneControllerConstructor } from './delete-one-controller.interface';
|
|
5
|
-
declare function DeleteOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneControllerConstructor<Entity>;
|
|
5
|
+
declare function DeleteOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneControllerConstructor<Entity>;
|
|
6
6
|
export { DeleteOneControllerMixin };
|
|
@@ -14,16 +14,23 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DeleteOneControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
|
-
const builder_pattern_1 = require("builder-pattern");
|
|
18
17
|
const builders_1 = require("../../builders");
|
|
19
18
|
const dtos_1 = require("../../dtos");
|
|
20
19
|
const helpers_1 = require("../../helpers");
|
|
21
20
|
const mixins_1 = require("../../mixins");
|
|
22
|
-
function DeleteOneControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
23
|
-
const { routeType, displayedName, description, isPublic,
|
|
21
|
+
function DeleteOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
22
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
23
|
+
class DeleteOnePresenter extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(DeleteOnePresenter, 'name', {
|
|
26
|
+
value: dTOs?.presenter
|
|
27
|
+
? `DeleteOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
28
|
+
: `DeleteResultPresenter`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
24
31
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
25
|
-
param: EntityParam,
|
|
26
|
-
presenter:
|
|
32
|
+
param: dtos_1.EntityParam,
|
|
33
|
+
presenter: DeleteOnePresenter,
|
|
27
34
|
});
|
|
28
35
|
class DeleteOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
29
36
|
}
|
|
@@ -33,8 +40,9 @@ function DeleteOneControllerMixin(entity, controllerOptions, routeConfig, versio
|
|
|
33
40
|
this.entity = entity;
|
|
34
41
|
}
|
|
35
42
|
async deleteOne(id) {
|
|
36
|
-
const
|
|
37
|
-
|
|
43
|
+
const deleteResult = await this.service.deleteOne(id);
|
|
44
|
+
const fromDeleteResult = DeleteOnePresenter.fromDeleteResult;
|
|
45
|
+
return fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult;
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"delete-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAA0D;AAC1D,2CAAmG;AAEnG,yCAAwD;AAKxD,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,kBAAmB,SAAQ,CAC/B,IAAI,EAAE,SAAS,IAAI,sBAAe,CACnC;KAAG;IAEJ,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,uBAAuB;QAC3B,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,KAAK,EAAE,kBAAW;QAClB,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,CAAc,EAAU;YACrC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAEtD,MAAM,gBAAgB,GACpB,kBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAqB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9F,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,sBAAsB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;4DAQ3B;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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { JwtService } from '@nestjs/jwt';
|
|
2
|
-
import {
|
|
3
|
-
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
2
|
+
import { EntityParam } from '../../dtos';
|
|
3
|
+
import { DeleteResult, ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
4
4
|
import { BaseEntity } from '../../models';
|
|
5
5
|
import { DeleteOneService } from './delete-one-service.interface';
|
|
6
|
-
interface DeleteOneGateway<
|
|
7
|
-
deleteOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<
|
|
6
|
+
interface DeleteOneGateway<_Entity extends BaseEntity, Response = any> {
|
|
7
|
+
deleteOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<DeleteResult | Response>;
|
|
8
8
|
}
|
|
9
9
|
type DeleteOneGatewayConstructor<Entity extends BaseEntity> = new (service: DeleteOneService<Entity>, jwtService: JwtService) => DeleteOneGateway<Entity>;
|
|
10
10
|
export type { DeleteOneGateway, DeleteOneGatewayConstructor };
|
|
@@ -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 { DeleteOneGatewayConstructor } from './delete-one-gateway.interface';
|
|
5
|
-
declare function DeleteOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneGatewayConstructor<Entity>;
|
|
5
|
+
declare function DeleteOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DeleteOneGatewayConstructor<Entity>;
|
|
6
6
|
export { DeleteOneGatewayMixin };
|
|
@@ -15,14 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.DeleteOneGatewayMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const websockets_1 = require("@nestjs/websockets");
|
|
18
|
-
const lodash_1 = require("lodash");
|
|
19
18
|
const dtos_1 = require("../../dtos");
|
|
20
19
|
const dynamic_api_ws_exception_filter_1 = require("../../filters/ws-exception/dynamic-api-ws-exception.filter");
|
|
21
20
|
const gateways_1 = require("../../gateways");
|
|
22
21
|
const helpers_1 = require("../../helpers");
|
|
23
|
-
function DeleteOneGatewayMixin(entity, controllerOptions, routeConfig, version) {
|
|
24
|
-
const { routeType, displayedName, isPublic, } = (0, helpers_1.
|
|
25
|
-
|
|
22
|
+
function DeleteOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
23
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
24
|
+
class DeleteOneResponse extends (dTOs?.presenter ?? dtos_1.DeletePresenter) {
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(DeleteOneResponse, 'name', {
|
|
27
|
+
value: dTOs?.presenter
|
|
28
|
+
? `DeleteOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
29
|
+
: `DeleteResultResponse`,
|
|
30
|
+
writable: false,
|
|
31
|
+
});
|
|
26
32
|
class BaseDeleteOneGateway extends gateways_1.BaseGateway {
|
|
27
33
|
constructor(service, jwtService) {
|
|
28
34
|
super(jwtService);
|
|
@@ -35,9 +41,11 @@ function DeleteOneGatewayMixin(entity, controllerOptions, routeConfig, version)
|
|
|
35
41
|
throw new websockets_1.WsException('Invalid request body');
|
|
36
42
|
}
|
|
37
43
|
this.addUserToSocket(socket, isPublic);
|
|
44
|
+
const deleteResult = await this.service.deleteOne(body.id);
|
|
45
|
+
const fromDeleteResult = DeleteOneResponse.fromDeleteResult;
|
|
38
46
|
return {
|
|
39
47
|
event,
|
|
40
|
-
data:
|
|
48
|
+
data: fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult,
|
|
41
49
|
};
|
|
42
50
|
}
|
|
43
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"delete-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/delete-one/delete-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,qCAA0D;AAC1D,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAM5E,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,GAAG,WAAW,EAAiC,EACvD,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,GACN,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,MAAM,iBAAkB,SAAQ,CAC9B,IAAI,EAAE,SAAS,IAAI,sBAAe,CACnC;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,YAAY,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACjE,CAAC,CAAC,sBAAsB;QAC1B,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,oBAAqB,SAAQ,sBAAmB;QAGpD,YACqB,OAAiC,EACjC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA0B;YACjC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,SAAS,CACM,MAA8B,EAClC,IAAiB;YAEhC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;gBACd,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAE3D,MAAM,gBAAgB,GACpB,iBACD,CAAC,gBAAgB,CAAC;YAEnB,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAoB,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY;aAC1F,CAAC;QACJ,CAAC;KACF;IArBO;QAFL,IAAA,mBAAU,EAAC,IAAI,6DAA2B,EAAE,CAAC;QAC7C,IAAA,6BAAgB,EAAC,KAAK,CAAC;QAErB,WAAA,IAAA,4BAAe,GAAE,CAAA;QACjB,WAAA,IAAA,wBAAW,GAAE,CAAA;;iDAAO,kBAAW;;yDAkBjC;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { DuplicateManyService } from './duplicate-many-service.interface';
|
|
3
|
-
interface DuplicateManyController<Entity extends BaseEntity> {
|
|
4
|
-
duplicateMany(ids: string[], body?: Partial<Entity>): Promise<Entity[]>;
|
|
3
|
+
interface DuplicateManyController<Entity extends BaseEntity, Response = any> {
|
|
4
|
+
duplicateMany(ids: string[], body?: Partial<Entity>): Promise<(Entity | Response)[]>;
|
|
5
5
|
}
|
|
6
6
|
type DuplicateManyControllerConstructor<Entity extends BaseEntity> = new (service: DuplicateManyService<Entity>) => DuplicateManyController<Entity>;
|
|
7
7
|
export type { DuplicateManyController, DuplicateManyControllerConstructor };
|
|
@@ -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 { DuplicateManyControllerConstructor } from './duplicate-many-controller.interface';
|
|
5
|
-
declare function DuplicateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyControllerConstructor<Entity>;
|
|
5
|
+
declare function DuplicateManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyControllerConstructor<Entity>;
|
|
6
6
|
export { DuplicateManyControllerMixin };
|
|
@@ -14,15 +14,29 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DuplicateManyControllerMixin = 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
|
-
function DuplicateManyControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
function DuplicateManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
22
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
23
|
+
class DuplicateManyBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(DuplicateManyBody, 'name', {
|
|
26
|
+
value: `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
|
|
27
|
+
writable: false,
|
|
28
|
+
});
|
|
29
|
+
class DuplicateManyPresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(DuplicateManyPresenter, 'name', {
|
|
32
|
+
value: dTOs?.presenter
|
|
33
|
+
? `${routeType}${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
34
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
|
|
35
|
+
writable: false,
|
|
36
|
+
});
|
|
23
37
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
24
|
-
body:
|
|
25
|
-
presenter:
|
|
38
|
+
body: DuplicateManyBody,
|
|
39
|
+
presenter: DuplicateManyPresenter,
|
|
26
40
|
});
|
|
27
41
|
class DuplicateManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
28
42
|
}
|
|
@@ -32,7 +46,10 @@ function DuplicateManyControllerMixin(entity, controllerOptions, routeConfig, ve
|
|
|
32
46
|
this.entity = entity;
|
|
33
47
|
}
|
|
34
48
|
async duplicateMany(ids, body) {
|
|
35
|
-
|
|
49
|
+
const toEntity = DuplicateManyBody.toEntity;
|
|
50
|
+
const list = await this.service.duplicateMany(ids, !(0, lodash_1.isEmpty)(body) && toEntity ? toEntity(body) : body);
|
|
51
|
+
const fromEntities = DuplicateManyPresenter.fromEntities;
|
|
52
|
+
return fromEntities ? fromEntities(list) : list;
|
|
36
53
|
}
|
|
37
54
|
}
|
|
38
55
|
__decorate([
|
|
@@ -41,7 +58,7 @@ function DuplicateManyControllerMixin(entity, controllerOptions, routeConfig, ve
|
|
|
41
58
|
__param(0, (0, common_1.Query)('ids')),
|
|
42
59
|
__param(1, (0, common_1.Body)()),
|
|
43
60
|
__metadata("design:type", Function),
|
|
44
|
-
__metadata("design:paramtypes", [Array,
|
|
61
|
+
__metadata("design:paramtypes", [Array, DuplicateManyBody]),
|
|
45
62
|
__metadata("design:returntype", Promise)
|
|
46
63
|
], BaseDuplicateManyController.prototype, "duplicateMany", null);
|
|
47
64
|
Object.defineProperty(BaseDuplicateManyController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"duplicate-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,mCAAiC;AACjC,6CAAwD;AACxD,2CAAmG;AAEnG,yCAA+F;AAK/F,SAAS,4BAA4B,CACnC,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,iBAAkB,SAAQ,CAC9B,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAC5C;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,KAAK;QACpE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAuB,SAAQ,CACnC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE;QACpD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YACrE,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,iBAAiB;QACvB,SAAS,EAAE,sBAAsB;KAClC,CACF,CAAC;IAEF,MAAM,0BAA2B,SAAQ,IAAA,iCAAwB,EAC/D,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,2BAA2B;QAG/B,YAA+B,OAAqC;YAArC,YAAO,GAAP,OAAO,CAA8B;YAFjD,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,aAAa,CAAe,GAAa,EAAU,IAAwB;YAC/E,MAAM,QAAQ,GACZ,iBACD,CAAC,QAAQ,CAAC;YAEX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAC3C,GAAG,EACH,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CACtE,CAAC;YAEF,MAAM,YAAY,GAChB,sBACD,CAAC,YAAY,CAAC;YAEf,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAyB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1E,CAAC;KACF;IAhBO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,0BAA0B,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,KAAK,CAAC,CAAA;QAAiB,WAAA,IAAA,aAAI,GAAE,CAAA;;gDAAQ,iBAAiB;;oEAehF;IAGH,MAAM,CAAC,cAAc,CAAC,2BAA2B,EAAE,MAAM,EAAE;QACzD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAClF,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAEQ,oEAA4B"}
|
|
@@ -3,8 +3,8 @@ import { ManyEntityQuery } from '../../dtos';
|
|
|
3
3
|
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
4
4
|
import { BaseEntity } from '../../models';
|
|
5
5
|
import { DuplicateManyService } from './duplicate-many-service.interface';
|
|
6
|
-
interface DuplicateManyGateway<Entity extends BaseEntity> {
|
|
7
|
-
duplicateMany(socket: ExtendedSocket, body: ManyEntityQuery & Partial<Entity>): GatewayResponse<Entity[]>;
|
|
6
|
+
interface DuplicateManyGateway<Entity extends BaseEntity, Response = any> {
|
|
7
|
+
duplicateMany(socket: ExtendedSocket, body: ManyEntityQuery & Partial<Entity>): GatewayResponse<(Entity | Response)[]>;
|
|
8
8
|
}
|
|
9
9
|
type DuplicateManyGatewayConstructor<Entity extends BaseEntity> = new (service: DuplicateManyService<Entity>, jwtService: JwtService) => DuplicateManyGateway<Entity>;
|
|
10
10
|
export type { DuplicateManyGateway, DuplicateManyGatewayConstructor };
|
|
@@ -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 { DuplicateManyGatewayConstructor } from './duplicate-many-gateway.interface';
|
|
5
|
-
declare function DuplicateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyGatewayConstructor<Entity>;
|
|
5
|
+
declare function DuplicateManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateManyGatewayConstructor<Entity>;
|
|
6
6
|
export { DuplicateManyGatewayMixin };
|
|
@@ -19,9 +19,23 @@ 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
|
-
const event =
|
|
22
|
+
const mixins_1 = require("../../mixins");
|
|
23
|
+
function DuplicateManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
24
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
25
|
+
class DuplicateManyData extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(DuplicateManyData, 'name', {
|
|
28
|
+
value: `DuplicateMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
class DuplicateManyResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
32
|
+
}
|
|
33
|
+
Object.defineProperty(DuplicateManyResponse, 'name', {
|
|
34
|
+
value: dTOs?.presenter
|
|
35
|
+
? `DuplicateMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
36
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
25
39
|
class BaseDuplicateManyGateway extends gateways_1.BaseGateway {
|
|
26
40
|
constructor(service, jwtService) {
|
|
27
41
|
super(jwtService);
|
|
@@ -34,10 +48,13 @@ function DuplicateManyGatewayMixin(entity, controllerOptions, routeConfig, versi
|
|
|
34
48
|
throw new websockets_1.WsException('Invalid request body');
|
|
35
49
|
}
|
|
36
50
|
this.addUserToSocket(socket, isPublic);
|
|
37
|
-
const { ids, ...
|
|
51
|
+
const { ids, ...data } = body;
|
|
52
|
+
const toEntity = DuplicateManyData.toEntity;
|
|
53
|
+
const list = await this.service.duplicateMany(ids, !(0, lodash_1.isEmpty)(data) && toEntity ? toEntity(data) : data);
|
|
54
|
+
const fromEntities = DuplicateManyResponse.fromEntities;
|
|
38
55
|
return {
|
|
39
56
|
event,
|
|
40
|
-
data:
|
|
57
|
+
data: fromEntities ? fromEntities(list) : list,
|
|
41
58
|
};
|
|
42
59
|
}
|
|
43
60
|
}
|