mongodb-dynamic-api 4.5.0 → 4.6.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 +12 -0
- package/README.md +2 -1
- package/package.json +1 -1
- package/src/interfaces/dynamic-api-service-before-save-callback.interface.d.ts +9 -9
- package/src/interfaces/dynamic-api-service-callback.interface.d.ts +2 -2
- package/src/routes/aggregate/aggregate-controller.interface.d.ts +1 -1
- package/src/routes/aggregate/aggregate-controller.mixin.js +4 -3
- package/src/routes/aggregate/aggregate-controller.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate-gateway.mixin.js +1 -1
- package/src/routes/aggregate/aggregate-gateway.mixin.js.map +1 -1
- package/src/routes/aggregate/aggregate-service.interface.d.ts +1 -1
- package/src/routes/aggregate/base-aggregate.service.d.ts +1 -1
- package/src/routes/aggregate/base-aggregate.service.js +2 -2
- package/src/routes/aggregate/base-aggregate.service.js.map +1 -1
- package/src/routes/create-many/base-create-many.service.d.ts +1 -1
- package/src/routes/create-many/base-create-many.service.js +4 -4
- package/src/routes/create-many/base-create-many.service.js.map +1 -1
- package/src/routes/create-many/create-many-controller.interface.d.ts +1 -1
- package/src/routes/create-many/create-many-controller.mixin.js +4 -3
- package/src/routes/create-many/create-many-controller.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-gateway.mixin.js +1 -1
- package/src/routes/create-many/create-many-gateway.mixin.js.map +1 -1
- package/src/routes/create-many/create-many-service.interface.d.ts +1 -1
- package/src/routes/create-one/base-create-one.service.d.ts +1 -1
- package/src/routes/create-one/base-create-one.service.js +4 -4
- package/src/routes/create-one/base-create-one.service.js.map +1 -1
- package/src/routes/create-one/create-one-controller.interface.d.ts +1 -1
- package/src/routes/create-one/create-one-controller.mixin.js +4 -3
- package/src/routes/create-one/create-one-controller.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-gateway.mixin.js +1 -1
- package/src/routes/create-one/create-one-gateway.mixin.js.map +1 -1
- package/src/routes/create-one/create-one-service.interface.d.ts +1 -1
- package/src/routes/delete-many/base-delete-many.service.d.ts +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 +1 -1
- package/src/routes/delete-many/delete-many-controller.mixin.js +4 -3
- package/src/routes/delete-many/delete-many-controller.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-gateway.mixin.js +1 -1
- package/src/routes/delete-many/delete-many-gateway.mixin.js.map +1 -1
- package/src/routes/delete-many/delete-many-service.interface.d.ts +1 -1
- package/src/routes/delete-one/base-delete-one.service.d.ts +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 +1 -1
- package/src/routes/delete-one/delete-one-controller.mixin.js +4 -3
- package/src/routes/delete-one/delete-one-controller.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-gateway.mixin.js +1 -1
- package/src/routes/delete-one/delete-one-gateway.mixin.js.map +1 -1
- package/src/routes/delete-one/delete-one-service.interface.d.ts +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.d.ts +1 -1
- package/src/routes/duplicate-many/base-duplicate-many.service.js +3 -3
- package/src/routes/duplicate-many/base-duplicate-many.service.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.interface.d.ts +1 -1
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js +4 -3
- package/src/routes/duplicate-many/duplicate-many-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js +1 -1
- package/src/routes/duplicate-many/duplicate-many-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-many/duplicate-many-service.interface.d.ts +1 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.d.ts +1 -1
- package/src/routes/duplicate-one/base-duplicate-one.service.js +3 -3
- package/src/routes/duplicate-one/base-duplicate-one.service.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.interface.d.ts +1 -1
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js +4 -3
- package/src/routes/duplicate-one/duplicate-one-controller.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js +1 -1
- package/src/routes/duplicate-one/duplicate-one-gateway.mixin.js.map +1 -1
- package/src/routes/duplicate-one/duplicate-one-service.interface.d.ts +1 -1
- package/src/routes/get-many/base-get-many.service.d.ts +1 -1
- package/src/routes/get-many/base-get-many.service.js +2 -2
- package/src/routes/get-many/base-get-many.service.js.map +1 -1
- package/src/routes/get-many/get-many-controller.interface.d.ts +1 -1
- package/src/routes/get-many/get-many-controller.mixin.js +4 -3
- package/src/routes/get-many/get-many-controller.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-gateway.mixin.js +1 -1
- package/src/routes/get-many/get-many-gateway.mixin.js.map +1 -1
- package/src/routes/get-many/get-many-service.interface.d.ts +1 -1
- package/src/routes/get-one/base-get-one.service.d.ts +1 -1
- package/src/routes/get-one/base-get-one.service.js +2 -2
- package/src/routes/get-one/base-get-one.service.js.map +1 -1
- package/src/routes/get-one/get-one-controller.interface.d.ts +1 -1
- package/src/routes/get-one/get-one-controller.mixin.js +4 -3
- package/src/routes/get-one/get-one-controller.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-gateway.mixin.js +1 -1
- package/src/routes/get-one/get-one-gateway.mixin.js.map +1 -1
- package/src/routes/get-one/get-one-service.interface.d.ts +1 -1
- package/src/routes/replace-one/base-replace-one.service.d.ts +1 -1
- package/src/routes/replace-one/base-replace-one.service.js +4 -4
- package/src/routes/replace-one/base-replace-one.service.js.map +1 -1
- package/src/routes/replace-one/replace-one-controller.interface.d.ts +1 -1
- package/src/routes/replace-one/replace-one-controller.mixin.js +4 -3
- package/src/routes/replace-one/replace-one-controller.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-gateway.mixin.js +1 -1
- package/src/routes/replace-one/replace-one-gateway.mixin.js.map +1 -1
- package/src/routes/replace-one/replace-one-service.interface.d.ts +1 -1
- package/src/routes/update-many/base-update-many.service.d.ts +1 -1
- package/src/routes/update-many/base-update-many.service.js +3 -3
- package/src/routes/update-many/base-update-many.service.js.map +1 -1
- package/src/routes/update-many/update-many-controller.interface.d.ts +1 -1
- package/src/routes/update-many/update-many-controller.mixin.js +4 -3
- package/src/routes/update-many/update-many-controller.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-gateway.mixin.js +1 -1
- package/src/routes/update-many/update-many-gateway.mixin.js.map +1 -1
- package/src/routes/update-many/update-many-service.interface.d.ts +1 -1
- package/src/routes/update-one/base-update-one.service.d.ts +1 -1
- package/src/routes/update-one/base-update-one.service.js +4 -4
- package/src/routes/update-one/base-update-one.service.js.map +1 -1
- package/src/routes/update-one/update-one-controller.interface.d.ts +1 -1
- package/src/routes/update-one/update-one-controller.mixin.js +4 -3
- package/src/routes/update-one/update-one-controller.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-gateway.mixin.js +1 -1
- package/src/routes/update-one/update-one-gateway.mixin.js.map +1 -1
- package/src/routes/update-one/update-one-service.interface.d.ts +1 -1
- package/src/version.json +1 -1
- package/test/for-feature/callbacks-user.e2e-spec.d.ts +1 -0
- package/test/for-feature/callbacks-user.e2e-spec.js +772 -0
- package/test/for-feature/callbacks-user.e2e-spec.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
|
|
3
|
+
## [4.6.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.5.0...v4.6.0) (2026-03-26)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### interfaces
|
|
7
|
+
|
|
8
|
+
* **interfaces:** add User generic type parameter to callback interfaces ([532302d](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/532302d88ddbe9fe19f7237b5298be3098b54af6))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### routes
|
|
12
|
+
|
|
13
|
+
* **routes:** propagate authenticated user to service callbacks ([b7454e5](https://github.com/MikeDev75015/mongodb-dynamic-api/commit/b7454e58f3adc8467e6727eef59e90b89a0e1fe9))
|
|
14
|
+
|
|
3
15
|
## [4.5.0](https://github.com/MikeDev75015/mongodb-dynamic-api/compare/v4.4.0...v4.5.0) (2026-03-18)
|
|
4
16
|
|
|
5
17
|
|
package/README.md
CHANGED
|
@@ -895,7 +895,8 @@ Explore advanced features and configurations:
|
|
|
895
895
|
| 🔐 **Authentication** | JWT dual-token auth (8 endpoints) — access + refresh tokens, cookie mode, server-side revocation | [View Guide](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/authentication.md) |
|
|
896
896
|
| 🛡️ **Authorization** | Role-based access control | [View Guide](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/authorization.md) |
|
|
897
897
|
| 📡 **WebSockets** | Socket.IO integration for routes | [View Guide](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/websockets.md) |
|
|
898
|
-
| 🗂️ **Route Configuration** | All route options: DTOs,
|
|
898
|
+
| 🗂️ **Route Configuration** | All route options: DTOs, interceptors, etc. | [View Guide](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/route-config.md) |
|
|
899
|
+
| 🔁 **Callbacks** | beforeSave / afterSave hooks, typed contexts, user access, audit trails | [View Guide](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/callbacks.md) |
|
|
899
900
|
| 🎛️ **Controller Configuration** | All `controllerOptions` and `forFeature` options | [View Guide](https://github.com/MikeDev75015/mongodb-dynamic-api/blob/main/README/controller-config.md) |
|
|
900
901
|
|
|
901
902
|
### Important Notes
|
package/package.json
CHANGED
|
@@ -32,11 +32,11 @@ type BeforeSaveDuplicateManyContext<Entity extends BaseEntity> = {
|
|
|
32
32
|
ids: string[];
|
|
33
33
|
override?: Partial<Entity>;
|
|
34
34
|
};
|
|
35
|
-
type BeforeSaveCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
36
|
-
type BeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
37
|
-
type BeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
38
|
-
type BeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
39
|
-
type AnyBeforeSaveCallback<Entity extends BaseEntity> = BeforeSaveCallback<Entity> | BeforeSaveListCallback<Entity> | BeforeSaveDeleteCallback<Entity> | BeforeSaveDeleteManyCallback<Entity>;
|
|
35
|
+
type BeforeSaveCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entity: Entity | undefined, context: Context, methods: CallbackMethods, user?: User) => Promise<Partial<Entity>>;
|
|
36
|
+
type BeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entities: Entity[] | undefined, context: Context, methods: CallbackMethods, user?: User) => Promise<Partial<Entity>[]>;
|
|
37
|
+
type BeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entity: Entity | undefined, context: Context, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
38
|
+
type BeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = (entities: Entity[], context: Context, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
39
|
+
type AnyBeforeSaveCallback<Entity extends BaseEntity, User = unknown> = BeforeSaveCallback<Entity, any, User> | BeforeSaveListCallback<Entity, any, User> | BeforeSaveDeleteCallback<Entity, any, User> | BeforeSaveDeleteManyCallback<Entity, any, User>;
|
|
40
40
|
type DynamicApiServiceBeforeSaveCreateContext<Entity extends BaseEntity> = BeforeSaveCreateContext<Entity>;
|
|
41
41
|
type DynamicApiServiceBeforeSaveCreateManyContext<Entity extends BaseEntity> = BeforeSaveCreateManyContext<Entity>;
|
|
42
42
|
type DynamicApiServiceBeforeSaveUpdateContext<Entity extends BaseEntity> = BeforeSaveUpdateContext<Entity>;
|
|
@@ -46,8 +46,8 @@ type DynamicApiServiceBeforeSaveDeleteContext = BeforeSaveDeleteContext;
|
|
|
46
46
|
type DynamicApiServiceBeforeSaveDeleteManyContext = BeforeSaveDeleteManyContext;
|
|
47
47
|
type DynamicApiServiceBeforeSaveDuplicateContext<Entity extends BaseEntity> = BeforeSaveDuplicateContext<Entity>;
|
|
48
48
|
type DynamicApiServiceBeforeSaveDuplicateManyContext<Entity extends BaseEntity> = BeforeSaveDuplicateManyContext<Entity>;
|
|
49
|
-
type DynamicApiServiceBeforeSaveCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
50
|
-
type DynamicApiServiceBeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
51
|
-
type DynamicApiServiceBeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
52
|
-
type DynamicApiServiceBeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown
|
|
49
|
+
type DynamicApiServiceBeforeSaveCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveCallback<Entity, Context, User>;
|
|
50
|
+
type DynamicApiServiceBeforeSaveListCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveListCallback<Entity, Context, User>;
|
|
51
|
+
type DynamicApiServiceBeforeSaveDeleteCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveDeleteCallback<Entity, Context, User>;
|
|
52
|
+
type DynamicApiServiceBeforeSaveDeleteManyCallback<Entity extends BaseEntity, Context = Record<string, unknown>, User = unknown> = BeforeSaveDeleteManyCallback<Entity, Context, User>;
|
|
53
53
|
export type { AnyBeforeSaveCallback, BeforeSaveCallback, BeforeSaveListCallback, BeforeSaveDeleteCallback, BeforeSaveDeleteManyCallback, BeforeSaveCreateContext, BeforeSaveCreateManyContext, BeforeSaveUpdateContext, BeforeSaveUpdateManyContext, BeforeSaveReplaceContext, BeforeSaveDeleteContext, BeforeSaveDeleteManyContext, BeforeSaveDuplicateContext, BeforeSaveDuplicateManyContext, DynamicApiServiceBeforeSaveCallback, DynamicApiServiceBeforeSaveListCallback, DynamicApiServiceBeforeSaveDeleteCallback, DynamicApiServiceBeforeSaveDeleteManyCallback, DynamicApiServiceBeforeSaveCreateContext, DynamicApiServiceBeforeSaveCreateManyContext, DynamicApiServiceBeforeSaveUpdateContext, DynamicApiServiceBeforeSaveUpdateManyContext, DynamicApiServiceBeforeSaveReplaceContext, DynamicApiServiceBeforeSaveDeleteContext, DynamicApiServiceBeforeSaveDeleteManyContext, DynamicApiServiceBeforeSaveDuplicateContext, DynamicApiServiceBeforeSaveDuplicateManyContext, };
|
|
@@ -15,8 +15,8 @@ type CallbackMethods = {
|
|
|
15
15
|
aggregateDocuments<T>(entity: Type<T>, pipeline: PipelineStage[]): Promise<T[]>;
|
|
16
16
|
};
|
|
17
17
|
type DynamicApiCallbackMethods = CallbackMethods;
|
|
18
|
-
type AfterSaveCallback<Entity extends BaseEntity> = (entity: Entity, methods: CallbackMethods) => Promise<void>;
|
|
19
|
-
type DynamicApiServiceCallback<Entity extends BaseEntity> = AfterSaveCallback<Entity>;
|
|
18
|
+
type AfterSaveCallback<Entity extends BaseEntity, User = unknown> = (entity: Entity, methods: CallbackMethods, user?: User) => Promise<void>;
|
|
19
|
+
type DynamicApiServiceCallback<Entity extends BaseEntity, User = unknown> = AfterSaveCallback<Entity, User>;
|
|
20
20
|
type DynamicApiResetPasswordCallbackMethods<Entity extends BaseEntity, UpdateBy = 'userId'> = {
|
|
21
21
|
findUserByEmail: () => Promise<Entity>;
|
|
22
22
|
updateUserByEmail: (update: UpdateQuery<Entity> | UpdateWithAggregationPipeline) => Promise<Entity>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { AggregateService } from './aggregate-service.interface';
|
|
3
3
|
interface AggregateController<Entity extends BaseEntity, Query = any, Response = any> {
|
|
4
|
-
aggregate(query: Query): Promise<Entity[] | Response[] | Response>;
|
|
4
|
+
aggregate(query: Query, req?: any): Promise<Entity[] | Response[] | Response>;
|
|
5
5
|
}
|
|
6
6
|
type AggregateControllerConstructor<Entity extends BaseEntity> = new (service: AggregateService<Entity>) => AggregateController<Entity>;
|
|
7
7
|
export type { AggregateController, AggregateControllerConstructor };
|
|
@@ -50,7 +50,7 @@ function AggregateControllerMixin(entity, controllerOptions, { dTOs, useIntercep
|
|
|
50
50
|
this.service = service;
|
|
51
51
|
this.entity = entity;
|
|
52
52
|
}
|
|
53
|
-
async aggregate(query) {
|
|
53
|
+
async aggregate(query, req) {
|
|
54
54
|
const toPipeline = AggregateQuery.toPipeline;
|
|
55
55
|
if (!toPipeline) {
|
|
56
56
|
throw new common_1.BadRequestException('Query DTO must have toPipeline static method');
|
|
@@ -59,7 +59,7 @@ function AggregateControllerMixin(entity, controllerOptions, { dTOs, useIntercep
|
|
|
59
59
|
if (!pipelineBuilt.length) {
|
|
60
60
|
throw new common_1.BadRequestException('Invalid pipeline, no stages found');
|
|
61
61
|
}
|
|
62
|
-
const { list, count, totalPage } = await this.service.aggregate(pipelineBuilt);
|
|
62
|
+
const { list, count, totalPage } = await this.service.aggregate(pipelineBuilt, req?.user);
|
|
63
63
|
const fromAggregate = AggregatePresenter.fromAggregate;
|
|
64
64
|
return fromAggregate ? fromAggregate(list, count, totalPage) : list;
|
|
65
65
|
}
|
|
@@ -70,8 +70,9 @@ function AggregateControllerMixin(entity, controllerOptions, { dTOs, useIntercep
|
|
|
70
70
|
(0, common_1.UseInterceptors)(...useInterceptors),
|
|
71
71
|
(0, common_1.SetMetadata)(decorators_1.DISABLE_CACHE_KEY, disableCache),
|
|
72
72
|
__param(0, (0, common_1.Query)()),
|
|
73
|
+
__param(1, (0, common_1.Request)()),
|
|
73
74
|
__metadata("design:type", Function),
|
|
74
|
-
__metadata("design:paramtypes", [AggregateQuery]),
|
|
75
|
+
__metadata("design:paramtypes", [AggregateQuery, Object]),
|
|
75
76
|
__metadata("design:returntype", Promise)
|
|
76
77
|
], BaseAggregateController.prototype, "aggregate", null);
|
|
77
78
|
Object.defineProperty(BaseAggregateController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAyHS,4DAAwB;AAzHjC,
|
|
1
|
+
{"version":3,"file":"aggregate-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-controller.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,7 @@ function AggregateGatewayMixin(entity, controllerOptions, { dTOs, useInterceptor
|
|
|
55
55
|
if (!toPipeline) {
|
|
56
56
|
throw new websockets_1.WsException('Query DTO must have toPipeline static method');
|
|
57
57
|
}
|
|
58
|
-
const { list, count, totalPage } = await this.service.aggregate(toPipeline((0, class_transformer_1.plainToInstance)(AggregateData, data)));
|
|
58
|
+
const { list, count, totalPage } = await this.service.aggregate(toPipeline((0, class_transformer_1.plainToInstance)(AggregateData, data)), _socket?.user);
|
|
59
59
|
const fromAggregate = AggregateResponse.fromAggregate;
|
|
60
60
|
return {
|
|
61
61
|
event,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAyHS,sDAAqB;AAzH9B,2CAA8E;AAE9E,mDAAiG;AACjG,yDAAoD;AACpD,2CAA4D;AAC5D,6CAA6C;AAC7C,yCAA8C;AAC9C,2CAA4E;AAS5E,yCAAwD;AAGxD,2EAAsE;AAGtE,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,eAAe,GAAG,EAAE,EAAE,GAAG,WAAW,EAAiC,EAC7E,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,EACL,gBAAgB,GACjB,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,wBAAW,CAAC,uBAAuB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,aAAc,SAAQ,IAAI,CAAC,KAAK;KAAG;IAEzC,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,IAAA,mDAAuB,EAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;KAAG;IAEnF,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACpE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,sBAAuB,SAAQ,IAAA,iCAAwB,EAC3D,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,QAAQ,CACT;KAAG;IAEJ,MAAM,oBAAqB,SAAQ,sBAAmB;QAOpD,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;QAMK,AAAN,KAAK,CAAC,SAAS,CACM,OAA+B,EACnC,IAAmB;YAElC,MAAM,UAAU,GACd,aACD,CAAC,UAAU,CAAC;YAEb,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,wBAAW,CAAC,8CAA8C,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,IAAA,mCAAe,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"aggregate-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/aggregate-gateway.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,6 @@ type AggregateServiceResponse<Entity extends BaseEntity> = {
|
|
|
6
6
|
totalPage: number;
|
|
7
7
|
};
|
|
8
8
|
interface AggregateService<Entity extends BaseEntity> {
|
|
9
|
-
aggregate(pipeline: PipelineStage[]): Promise<AggregateServiceResponse<Entity>>;
|
|
9
|
+
aggregate(pipeline: PipelineStage[], user?: unknown): Promise<AggregateServiceResponse<Entity>>;
|
|
10
10
|
}
|
|
11
11
|
export type { AggregateService, AggregateServiceResponse };
|
|
@@ -10,7 +10,7 @@ export declare abstract class BaseAggregateService<Entity extends BaseEntity> ex
|
|
|
10
10
|
protected readonly entity: Type<Entity>;
|
|
11
11
|
protected readonly callback: AfterSaveCallback<Entity> | undefined;
|
|
12
12
|
protected constructor(model: Model<Entity>);
|
|
13
|
-
aggregate(pipeline: PipelineStage[]): Promise<{
|
|
13
|
+
aggregate(pipeline: PipelineStage[], user?: unknown): Promise<{
|
|
14
14
|
list: Entity[];
|
|
15
15
|
count: number;
|
|
16
16
|
totalPage: number;
|
|
@@ -8,7 +8,7 @@ class BaseAggregateService extends services_1.BaseService {
|
|
|
8
8
|
super(model);
|
|
9
9
|
this.model = model;
|
|
10
10
|
}
|
|
11
|
-
async aggregate(pipeline) {
|
|
11
|
+
async aggregate(pipeline, user) {
|
|
12
12
|
try {
|
|
13
13
|
let documents;
|
|
14
14
|
let count;
|
|
@@ -26,7 +26,7 @@ class BaseAggregateService extends services_1.BaseService {
|
|
|
26
26
|
totalPage = 1;
|
|
27
27
|
}
|
|
28
28
|
if (this.callback && documents.length) {
|
|
29
|
-
await Promise.all(documents.map((document) => this.callback(this.addDocumentId(document), this.callbackMethods)));
|
|
29
|
+
await Promise.all(documents.map((document) => this.callback(this.addDocumentId(document), this.callbackMethods, user)));
|
|
30
30
|
}
|
|
31
31
|
return { list: documents.map((d) => this.buildInstance(d)), count, totalPage };
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-aggregate.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/base-aggregate.service.ts"],"names":[],"mappings":";;;AACA,uEAAqF;AAIrF,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAM3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAyB;
|
|
1
|
+
{"version":3,"file":"base-aggregate.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/aggregate/base-aggregate.service.ts"],"names":[],"mappings":";;;AACA,uEAAqF;AAIrF,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAM3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAyB,EAAE,IAAc;QACvD,IAAI,CAAC;YACH,IAAI,SAAmB,CAAC;YACxB,IAAI,KAAa,CAAC;YAClB,IAAI,SAAiB,CAAC;YAEtB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,MAAM,IAAA,0CAAe,EAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACzE,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;gBACnC,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAChC,SAAS,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAS,EAAS,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC7D,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC7B,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC1B,SAAS,GAAG,CAAC,CAAC;YAChB,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CACX,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CACtF,CACF,CAAC;YACJ,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACjF,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,QAAyB;QAC9C,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC5F,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/F,OAAO,YAAY,IAAI,aAAa,CAAC;IACvC,CAAC;CACF;AAvDD,oDAuDC"}
|
|
@@ -10,5 +10,5 @@ export declare abstract class BaseCreateManyService<Entity extends BaseEntity> e
|
|
|
10
10
|
protected readonly beforeSaveCallback: BeforeSaveListCallback<Entity, BeforeSaveCreateManyContext<Entity>> | undefined;
|
|
11
11
|
protected readonly callback: AfterSaveCallback<Entity> | undefined;
|
|
12
12
|
protected constructor(model: Model<Entity>);
|
|
13
|
-
createMany(partials: Partial<Entity>[]): Promise<Entity[]>;
|
|
13
|
+
createMany(partials: Partial<Entity>[], user?: unknown): Promise<Entity[]>;
|
|
14
14
|
}
|
|
@@ -9,18 +9,18 @@ class BaseCreateManyService extends services_1.BaseService {
|
|
|
9
9
|
super(model);
|
|
10
10
|
this.model = model;
|
|
11
11
|
}
|
|
12
|
-
async createMany(partials) {
|
|
12
|
+
async createMany(partials, user) {
|
|
13
13
|
try {
|
|
14
14
|
const toCreate = this.beforeSaveCallback
|
|
15
|
-
? await this.beforeSaveCallback(undefined, { toCreate: (0, helpers_1.cloneDeep)(partials) }, this.callbackMethods)
|
|
16
|
-
: partials;
|
|
15
|
+
? await this.beforeSaveCallback(undefined, { toCreate: (0, helpers_1.cloneDeep)(partials) }, this.callbackMethods, user)
|
|
16
|
+
: (0, helpers_1.cloneDeep)(partials);
|
|
17
17
|
const created = await this.model.create(toCreate.map((p) => (0, class_transformer_1.plainToInstance)(this.entity, p)));
|
|
18
18
|
const documents = await this.model
|
|
19
19
|
.find({ _id: { $in: created.map(({ _id }) => _id.toString()) } })
|
|
20
20
|
.lean()
|
|
21
21
|
.exec();
|
|
22
22
|
if (this.callback && documents.length) {
|
|
23
|
-
await Promise.all(documents.map((document) => this.callback(this.addDocumentId(document), this.callbackMethods)));
|
|
23
|
+
await Promise.all(documents.map((document) => this.callback(this.addDocumentId(document), this.callbackMethods, user)));
|
|
24
24
|
}
|
|
25
25
|
return documents.map((d) => this.buildInstance(d));
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-create-many.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/base-create-many.service.ts"],"names":[],"mappings":";;;AACA,yDAAoD;AACpD,2CAA0C;AAQ1C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAU3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAA2B;
|
|
1
|
+
{"version":3,"file":"base-create-many.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-many/base-create-many.service.ts"],"names":[],"mappings":";;;AACA,yDAAoD;AACpD,2CAA0C;AAQ1C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAU3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAA2B,EAAE,IAAc;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB;gBACtC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAC7B,SAAS,EACT,EAAE,QAAQ,EAAE,IAAA,mBAAS,EAAC,QAAQ,CAAC,EAAE,EACjC,IAAI,CAAC,eAAe,EACpB,IAAI,CACL;gBACD,CAAC,CAAC,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC;YAExB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,mCAAe,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CACrD,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK;iBACjC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;iBAChE,IAAI,EAAE;iBACN,IAAI,EAAE,CAAC;YAER,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtC,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CACX,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAkB,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAChG,CACF,CAAC;YACJ,CAAC;YAED,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAW,CAAC,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF;AAhDD,sDAgDC"}
|
|
@@ -5,7 +5,7 @@ type CreateManyBody<T = any> = {
|
|
|
5
5
|
list: Partial<T>[];
|
|
6
6
|
};
|
|
7
7
|
interface CreateManyController<Entity extends BaseEntity, Response = any> {
|
|
8
|
-
createMany(body: CreateManyBody<Entity
|
|
8
|
+
createMany(body: CreateManyBody<Entity>, req?: any): Promise<(Entity | Response)[]>;
|
|
9
9
|
}
|
|
10
10
|
type CreateManyControllerConstructor<Entity extends BaseEntity> = new (service: CreateManyService<Entity>, broadcastService?: DynamicApiBroadcastService) => CreateManyController<Entity>;
|
|
11
11
|
export type { CreateManyBody, CreateManyController, CreateManyControllerConstructor };
|
|
@@ -48,7 +48,7 @@ function CreateManyControllerMixin(entity, controllerOptions, { dTOs, useInterce
|
|
|
48
48
|
this.broadcastService = broadcastService;
|
|
49
49
|
this.entity = entity;
|
|
50
50
|
}
|
|
51
|
-
async createMany(body) {
|
|
51
|
+
async createMany(body, req) {
|
|
52
52
|
if (!('list' in body &&
|
|
53
53
|
Array.isArray(body.list) &&
|
|
54
54
|
body.list.length &&
|
|
@@ -57,7 +57,7 @@ function CreateManyControllerMixin(entity, controllerOptions, { dTOs, useInterce
|
|
|
57
57
|
}
|
|
58
58
|
let toCreateList = body.list;
|
|
59
59
|
const toEntities = CreateManyBody.toEntities;
|
|
60
|
-
const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList);
|
|
60
|
+
const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList, req?.user);
|
|
61
61
|
const fromEntities = CreateManyPresenter.fromEntities;
|
|
62
62
|
const responseData = fromEntities ? fromEntities(list) : list;
|
|
63
63
|
this.broadcastService?.broadcastFromHttp(event, responseData, broadcastConfig);
|
|
@@ -69,8 +69,9 @@ function CreateManyControllerMixin(entity, controllerOptions, { dTOs, useInterce
|
|
|
69
69
|
(0, common_1.UseGuards)(CreateManyPoliciesGuard),
|
|
70
70
|
(0, common_1.UseInterceptors)(...useInterceptors),
|
|
71
71
|
__param(0, (0, common_1.Body)()),
|
|
72
|
+
__param(1, (0, common_1.Request)()),
|
|
72
73
|
__metadata("design:type", Function),
|
|
73
|
-
__metadata("design:paramtypes", [CreateManyBody]),
|
|
74
|
+
__metadata("design:paramtypes", [CreateManyBody, Object]),
|
|
74
75
|
__metadata("design:returntype", Promise)
|
|
75
76
|
], BaseCreateManyController.prototype, "createMany", null);
|
|
76
77
|
BaseCreateManyController = __decorate([
|
|
@@ -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":";;;;;;;;;;;;;;AAqHS,8DAAyB;AArHlC,
|
|
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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"}
|
|
@@ -56,7 +56,7 @@ function CreateManyGatewayMixin(entity, controllerOptions, { dTOs, useIntercepto
|
|
|
56
56
|
}
|
|
57
57
|
let toCreateList = body.list;
|
|
58
58
|
const toEntities = CreateManyData.toEntities;
|
|
59
|
-
const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList);
|
|
59
|
+
const list = await this.service.createMany(toEntities ? toEntities(body) : toCreateList, socket?.user);
|
|
60
60
|
const fromEntities = CreateManyResponse.fromEntities;
|
|
61
61
|
const responseData = fromEntities ? fromEntities(list) : list;
|
|
62
62
|
this.broadcastIfNeeded(socket, event, responseData, broadcastConfig);
|
|
@@ -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":";;;;;;;;;;;;;;AA2HS,wDAAsB;AA3H/B,2CAA8E;AAE9E,mDAAiG;AACjG,2CAA4D;AAC5D,6CAA6C;AAC7C,yCAA8C;AAC9C,2CAAqF;AAQrF,yCAAwD;AAExD,qEAA+D;AAE/D,+EAAyE;AAGzE,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,eAAe,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,WAAW,EAAiC,EACzG,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,EACL,gBAAgB,GACjB,GAAG,IAAA,sBAAY,EACd,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,IAAI,CACL,CAAC;IAEF,MAAM,cAAe,SAAQ,IAAA,4CAAmB,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;KAAG;IAEvE,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE;QAC5C,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,MAAM;QACrE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,kBAAmB,SAAQ,IAAA,sDAAwB,EAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC;KAAG;IAErF,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YACpE,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,uBAAwB,SAAQ,IAAA,iCAAwB,EAC5D,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,QAAQ,CACT;KAAG;IAEJ,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;QAMK,AAAN,KAAK,CAAC,UAAU,CACK,MAA8B,EAClC,IAAoB;YAEnC,IAAI,CAAC,CACH,MAAM,IAAI,IAAI;gBACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,IAAA,iBAAO,EAAC,CAAC,CAAC,CAAC,CAC5C,EAAE,CAAC;gBACF,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,YAAY,GAAG,IAAI,CAAC,IAAyB,CAAC;YAElD,MAAM,UAAU,GACd,cACD,CAAC,UAAU,CAAC;YAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;
|
|
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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
interface CreateManyService<Entity extends BaseEntity> {
|
|
3
|
-
createMany(partial: Partial<Entity>[]): Promise<Entity[]>;
|
|
3
|
+
createMany(partial: Partial<Entity>[], user?: unknown): Promise<Entity[]>;
|
|
4
4
|
}
|
|
5
5
|
export type { CreateManyService };
|
|
@@ -8,5 +8,5 @@ export declare abstract class BaseCreateOneService<Entity extends BaseEntity> ex
|
|
|
8
8
|
protected readonly beforeSaveCallback: BeforeSaveCallback<Entity, BeforeSaveCreateContext<Entity>> | undefined;
|
|
9
9
|
protected readonly callback: AfterSaveCallback<Entity> | undefined;
|
|
10
10
|
protected constructor(model: Model<Entity>);
|
|
11
|
-
createOne(partial: Partial<Entity
|
|
11
|
+
createOne(partial: Partial<Entity>, user?: unknown): Promise<Entity>;
|
|
12
12
|
}
|
|
@@ -9,15 +9,15 @@ class BaseCreateOneService extends services_1.BaseService {
|
|
|
9
9
|
super(model);
|
|
10
10
|
this.model = model;
|
|
11
11
|
}
|
|
12
|
-
async createOne(partial) {
|
|
12
|
+
async createOne(partial, user) {
|
|
13
13
|
try {
|
|
14
14
|
const toCreate = this.beforeSaveCallback
|
|
15
|
-
? await this.beforeSaveCallback(undefined, { toCreate: (0, helpers_1.cloneDeep)(partial) }, this.callbackMethods)
|
|
16
|
-
: partial;
|
|
15
|
+
? await this.beforeSaveCallback(undefined, { toCreate: (0, helpers_1.cloneDeep)(partial) }, this.callbackMethods, user)
|
|
16
|
+
: (0, helpers_1.cloneDeep)(partial);
|
|
17
17
|
const { _id } = await this.model.create((0, class_transformer_1.plainToInstance)(this.entity, toCreate));
|
|
18
18
|
const document = await this.model.findOne({ _id }).lean().exec();
|
|
19
19
|
if (this.callback) {
|
|
20
|
-
await this.callback(this.addDocumentId(document), this.callbackMethods);
|
|
20
|
+
await this.callback(this.addDocumentId(document), this.callbackMethods, user);
|
|
21
21
|
}
|
|
22
22
|
return this.buildInstance(document);
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-create-one.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/base-create-one.service.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AACpD,2CAA0C;AAQ1C,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAS3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAwB;
|
|
1
|
+
{"version":3,"file":"base-create-one.service.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/create-one/base-create-one.service.ts"],"names":[],"mappings":";;;AAAA,yDAAoD;AACpD,2CAA0C;AAQ1C,6CAA6C;AAG7C,MAAsB,oBACpB,SAAQ,sBAAmB;IAS3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAwB,EAAE,IAAc;QACtD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB;gBACtC,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAC7B,SAAS,EACT,EAAE,QAAQ,EAAE,IAAA,mBAAS,EAAC,OAAO,CAAC,EAAE,EAChC,IAAI,CAAC,eAAe,EACpB,IAAI,CACL;gBACD,CAAC,CAAC,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC;YAEvB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAA,mCAAe,EAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEhF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAU,CAAC,IAAI,EAAE,CAAC;YAEzE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;YAChF,CAAC;YAED,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF;AAtCD,oDAsCC"}
|
|
@@ -2,7 +2,7 @@ import { BaseEntity } from '../../models';
|
|
|
2
2
|
import { DynamicApiBroadcastService } from '../../services';
|
|
3
3
|
import { CreateOneService } from './create-one-service.interface';
|
|
4
4
|
interface CreateOneController<Entity extends BaseEntity, Response = any> {
|
|
5
|
-
createOne<Body>(body: Body): Promise<Entity | Response>;
|
|
5
|
+
createOne<Body>(body: Body, req?: any): Promise<Entity | Response>;
|
|
6
6
|
}
|
|
7
7
|
type CreateOneControllerConstructor<Entity extends BaseEntity> = new (service: CreateOneService<Entity>, broadcastService?: DynamicApiBroadcastService) => CreateOneController<Entity>;
|
|
8
8
|
export type { CreateOneController, CreateOneControllerConstructor };
|
|
@@ -46,9 +46,9 @@ function CreateOneControllerMixin(entity, controllerOptions, { dTOs, useIntercep
|
|
|
46
46
|
this.broadcastService = broadcastService;
|
|
47
47
|
this.entity = entity;
|
|
48
48
|
}
|
|
49
|
-
async createOne(body) {
|
|
49
|
+
async createOne(body, req) {
|
|
50
50
|
const toEntity = CreateOneBody.toEntity;
|
|
51
|
-
const entity = await this.service.createOne(toEntity ? toEntity(body) : body);
|
|
51
|
+
const entity = await this.service.createOne(toEntity ? toEntity(body) : body, req?.user);
|
|
52
52
|
const fromEntity = CreateOnePresenter.fromEntity;
|
|
53
53
|
const responseData = fromEntity ? fromEntity(entity) : entity;
|
|
54
54
|
this.broadcastService?.broadcastFromHttp(event, [responseData], broadcastConfig);
|
|
@@ -60,8 +60,9 @@ function CreateOneControllerMixin(entity, controllerOptions, { dTOs, useIntercep
|
|
|
60
60
|
(0, common_1.UseGuards)(CreateOnePoliciesGuard),
|
|
61
61
|
(0, common_1.UseInterceptors)(...useInterceptors),
|
|
62
62
|
__param(0, (0, common_1.Body)()),
|
|
63
|
+
__param(1, (0, common_1.Request)()),
|
|
63
64
|
__metadata("design:type", Function),
|
|
64
|
-
__metadata("design:paramtypes", [CreateOneBody]),
|
|
65
|
+
__metadata("design:paramtypes", [CreateOneBody, Object]),
|
|
65
66
|
__metadata("design:returntype", Promise)
|
|
66
67
|
], BaseCreateOneController.prototype, "createOne", null);
|
|
67
68
|
BaseCreateOneController = __decorate([
|
|
@@ -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":";;;;;;;;;;;;;;AAwGS,4DAAwB;AAxGjC,
|
|
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":"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"}
|
|
@@ -50,7 +50,7 @@ function CreateOneGatewayMixin(entity, controllerOptions, { dTOs, useInterceptor
|
|
|
50
50
|
throw new websockets_1.WsException('Invalid request body');
|
|
51
51
|
}
|
|
52
52
|
const toEntity = CreateOneData.toEntity;
|
|
53
|
-
const entity = await this.service.createOne(toEntity ? toEntity(body) : body);
|
|
53
|
+
const entity = await this.service.createOne(toEntity ? toEntity(body) : body, socket?.user);
|
|
54
54
|
const fromEntity = CreateOneResponse.fromEntity;
|
|
55
55
|
const responseData = fromEntity ? fromEntity(entity) : entity;
|
|
56
56
|
this.broadcastIfNeeded(socket, event, [responseData], broadcastConfig);
|
|
@@ -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":";;;;;;;;;;;;;;AA4GS,sDAAqB;AA5G9B,2CAA8E;AAE9E,mDAAiG;AACjG,2CAA4D;AAC5D,6CAA6C;AAC7C,yCAA8C;AAC9C,2CAAqF;AAErF,yCAA+F;AAK/F,SAAS,qBAAqB,CAC5B,MAAoB,EACpB,iBAAsD,EACtD,EAAE,IAAI,EAAE,eAAe,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,WAAW,EAAiC,EACzG,OAAgB;IAEhB,MAAM,EACJ,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,EACL,gBAAgB,GACjB,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,sBAAuB,SAAQ,IAAA,iCAAwB,EAC3D,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,QAAQ,CACT;KAAG;IAEJ,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;QAMK,AAAN,KAAK,CAAC,SAAS,CACM,MAA8B,EAClC,IAAmB;YAElC,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,wBAAW,CAAC,sBAAsB,CAAC,CAAC;YAChD,CAAC;YAED,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;
|
|
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":"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"}
|
|
@@ -9,5 +9,5 @@ export declare abstract class BaseDeleteManyService<Entity extends BaseEntity> e
|
|
|
9
9
|
protected readonly beforeSaveCallback: BeforeSaveDeleteManyCallback<Entity, BeforeSaveDeleteManyContext> | undefined;
|
|
10
10
|
protected readonly callback: AfterSaveCallback<Entity> | undefined;
|
|
11
11
|
protected constructor(model: Model<Entity>);
|
|
12
|
-
deleteMany(ids: string[]): Promise<DeletePresenter>;
|
|
12
|
+
deleteMany(ids: string[], user?: unknown): Promise<DeletePresenter>;
|
|
13
13
|
}
|
|
@@ -9,7 +9,7 @@ class BaseDeleteManyService extends services_1.BaseService {
|
|
|
9
9
|
super(model);
|
|
10
10
|
this.model = model;
|
|
11
11
|
}
|
|
12
|
-
async deleteMany(ids) {
|
|
12
|
+
async deleteMany(ids, user) {
|
|
13
13
|
try {
|
|
14
14
|
const documents = await this.model
|
|
15
15
|
.find({
|
|
@@ -19,7 +19,7 @@ class BaseDeleteManyService extends services_1.BaseService {
|
|
|
19
19
|
.lean()
|
|
20
20
|
.exec();
|
|
21
21
|
if (this.beforeSaveCallback) {
|
|
22
|
-
await this.beforeSaveCallback(documents, { ids }, this.callbackMethods);
|
|
22
|
+
await this.beforeSaveCallback(documents, { ids }, this.callbackMethods, user);
|
|
23
23
|
}
|
|
24
24
|
let op;
|
|
25
25
|
if (this.isSoftDeletable) {
|
|
@@ -35,7 +35,7 @@ class BaseDeleteManyService extends services_1.BaseService {
|
|
|
35
35
|
op = await this.model.deleteMany({ _id: { $in: ids } }).exec();
|
|
36
36
|
}
|
|
37
37
|
if (this.callback && documents?.length) {
|
|
38
|
-
await Promise.all(documents.map((document) => this.callback(this.addDocumentId(document), this.callbackMethods)));
|
|
38
|
+
await Promise.all(documents.map((document) => this.callback(this.addDocumentId(document), this.callbackMethods, user)));
|
|
39
39
|
}
|
|
40
40
|
return (0, class_transformer_1.plainToInstance)(dtos_1.DeletePresenter, { deletedCount: op.deletedCount });
|
|
41
41
|
}
|
|
@@ -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,yDAAoD;AAEpD,qCAA6C;AAQ7C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAS3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa;
|
|
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;AAQ7C,6CAA6C;AAG7C,MAAsB,qBACpB,SAAQ,sBAAmB;IAS3B,YAAyC,KAAoB;QAC3D,KAAK,CAAC,KAAK,CAAC,CAAC;QAD0B,UAAK,GAAL,KAAK,CAAe;IAE7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAa,EAAE,IAAc;QAC5C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK;iBAC/B,IAAI,CAAC;gBACJ,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;gBACjB,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;aAC7D,CAAC;iBACD,IAAI,EAAY;iBAChB,IAAI,EAAE,CAAC;YAEV,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAM,IAAI,CAAC,kBAAkB,CAC3B,SAAS,EACT,EAAE,GAAG,EAAE,EACP,IAAI,CAAC,eAAe,EACpB,IAAI,CACL,CAAC;YACJ,CAAC;YAED,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,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;gBACvC,MAAM,OAAO,CAAC,GAAG,CACf,SAAS,CAAC,GAAG,CACX,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CACtF,CACF,CAAC;YACJ,CAAC;YAED,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,IAAA,mCAAe,EAAC,sBAAe,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;CACF;AAhED,sDAgEC"}
|
|
@@ -4,7 +4,7 @@ import { BaseEntity } from '../../models';
|
|
|
4
4
|
import { DynamicApiBroadcastService } from '../../services';
|
|
5
5
|
import { DeleteManyService } from './delete-many-service.interface';
|
|
6
6
|
interface DeleteManyController<_Entity extends BaseEntity, Response = any> {
|
|
7
|
-
deleteMany(query: ManyEntityQuery): Promise<DeleteResult | Response>;
|
|
7
|
+
deleteMany(query: ManyEntityQuery, req?: any): Promise<DeleteResult | Response>;
|
|
8
8
|
}
|
|
9
9
|
type DeleteManyControllerConstructor<Entity extends BaseEntity> = new (service: DeleteManyService<Entity>, broadcastService?: DynamicApiBroadcastService) => DeleteManyController<Entity>;
|
|
10
10
|
export type { DeleteManyController, DeleteManyControllerConstructor };
|
|
@@ -40,11 +40,11 @@ function DeleteManyControllerMixin(entity, controllerOptions, { dTOs, useInterce
|
|
|
40
40
|
this.broadcastService = broadcastService;
|
|
41
41
|
this.entity = entity;
|
|
42
42
|
}
|
|
43
|
-
async deleteMany({ ids }) {
|
|
43
|
+
async deleteMany({ ids }, req) {
|
|
44
44
|
if (!ids?.length) {
|
|
45
45
|
throw new Error('Invalid query');
|
|
46
46
|
}
|
|
47
|
-
const deleteResult = await this.service.deleteMany(ids);
|
|
47
|
+
const deleteResult = await this.service.deleteMany(ids, req?.user);
|
|
48
48
|
const fromDeleteResult = DeleteManyPresenter.fromDeleteResult;
|
|
49
49
|
const responseData = fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult;
|
|
50
50
|
this.broadcastService?.broadcastFromHttp(event, ids.map(id => ({ id })), broadcastConfig);
|
|
@@ -56,8 +56,9 @@ function DeleteManyControllerMixin(entity, controllerOptions, { dTOs, useInterce
|
|
|
56
56
|
(0, common_1.UseGuards)(DeleteManyPoliciesGuard),
|
|
57
57
|
(0, common_1.UseInterceptors)(...useInterceptors),
|
|
58
58
|
__param(0, (0, common_1.Query)()),
|
|
59
|
+
__param(1, (0, common_1.Request)()),
|
|
59
60
|
__metadata("design:type", Function),
|
|
60
|
-
__metadata("design:paramtypes", [dtos_1.ManyEntityQuery]),
|
|
61
|
+
__metadata("design:paramtypes", [dtos_1.ManyEntityQuery, Object]),
|
|
61
62
|
__metadata("design:returntype", Promise)
|
|
62
63
|
], BaseDeleteManyController.prototype, "deleteMany", null);
|
|
63
64
|
BaseDeleteManyController = __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":";;;;;;;;;;;;;;AAiGS,8DAAyB;AAjGlC,
|
|
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":"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"}
|
|
@@ -44,7 +44,7 @@ function DeleteManyGatewayMixin(entity, controllerOptions, { dTOs, useIntercepto
|
|
|
44
44
|
if (!this.isValidManyBody(body)) {
|
|
45
45
|
throw new websockets_1.WsException('Invalid request body');
|
|
46
46
|
}
|
|
47
|
-
const deleteResult = await this.service.deleteMany(body.ids);
|
|
47
|
+
const deleteResult = await this.service.deleteMany(body.ids, socket?.user);
|
|
48
48
|
const fromDeleteResult = DeleteManyResponse.fromDeleteResult;
|
|
49
49
|
const responseData = fromDeleteResult ? fromDeleteResult(deleteResult) : deleteResult;
|
|
50
50
|
this.broadcastIfNeeded(socket, event, body.ids.map(id => ({ id })), broadcastConfig);
|