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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"duplicate-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-many/duplicate-many-gateway.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
|
-
interface DuplicateManyService<Entity extends BaseEntity> {
|
|
3
|
-
duplicateMany(ids: string[], partial
|
|
2
|
+
interface DuplicateManyService<Entity extends BaseEntity, Response = any> {
|
|
3
|
+
duplicateMany(ids: string[], partial?: Partial<Entity>): Promise<(Entity | Response)[]>;
|
|
4
4
|
}
|
|
5
5
|
export type { DuplicateManyService };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { DuplicateOneService } from './duplicate-one-service.interface';
|
|
3
|
-
interface DuplicateOneController<Entity extends BaseEntity> {
|
|
4
|
-
duplicateOne(id: string, body?: Partial<Entity>): Promise<Entity>;
|
|
3
|
+
interface DuplicateOneController<Entity extends BaseEntity, Response = any> {
|
|
4
|
+
duplicateOne(id: string, body?: Partial<Entity>): Promise<Entity | Response>;
|
|
5
5
|
}
|
|
6
6
|
type DuplicateOneControllerConstructor<Entity extends BaseEntity> = new (service: DuplicateOneService<Entity>) => DuplicateOneController<Entity>;
|
|
7
7
|
export type { DuplicateOneController, DuplicateOneControllerConstructor };
|
|
@@ -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 { DuplicateOneControllerConstructor } from './duplicate-one-controller.interface';
|
|
5
|
-
declare function DuplicateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneControllerConstructor<Entity>;
|
|
5
|
+
declare function DuplicateOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneControllerConstructor<Entity>;
|
|
6
6
|
export { DuplicateOneControllerMixin };
|
|
@@ -14,17 +14,31 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DuplicateOneControllerMixin = 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 dtos_1 = require("../../dtos");
|
|
19
20
|
const helpers_1 = require("../../helpers");
|
|
20
21
|
const mixins_1 = require("../../mixins");
|
|
21
|
-
function DuplicateOneControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
function DuplicateOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
23
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
24
|
+
class DuplicateOneBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(DuplicateOneBody, 'name', {
|
|
27
|
+
value: `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
|
|
28
|
+
writable: false,
|
|
29
|
+
});
|
|
30
|
+
class DuplicateOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(DuplicateOnePresenter, 'name', {
|
|
33
|
+
value: dTOs?.presenter
|
|
34
|
+
? `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
35
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
|
|
36
|
+
writable: false,
|
|
37
|
+
});
|
|
24
38
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder('DuplicateOne', entity, routeConfig.subPath, version, description, isPublic, {
|
|
25
39
|
param: dtos_1.EntityParam,
|
|
26
|
-
body:
|
|
27
|
-
presenter:
|
|
40
|
+
body: DuplicateOneBody,
|
|
41
|
+
presenter: DuplicateOnePresenter,
|
|
28
42
|
});
|
|
29
43
|
class DuplicateOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
30
44
|
}
|
|
@@ -34,7 +48,10 @@ function DuplicateOneControllerMixin(entity, controllerOptions, routeConfig, ver
|
|
|
34
48
|
this.entity = entity;
|
|
35
49
|
}
|
|
36
50
|
async duplicateOne(id, body) {
|
|
37
|
-
|
|
51
|
+
const toEntity = DuplicateOneBody.toEntity;
|
|
52
|
+
const entity = await this.service.duplicateOne(id, !(0, lodash_1.isEmpty)(body) && toEntity ? toEntity(body) : body);
|
|
53
|
+
const fromEntity = DuplicateOnePresenter.fromEntity;
|
|
54
|
+
return fromEntity ? fromEntity(entity) : entity;
|
|
38
55
|
}
|
|
39
56
|
}
|
|
40
57
|
__decorate([
|
|
@@ -43,7 +60,7 @@ function DuplicateOneControllerMixin(entity, controllerOptions, routeConfig, ver
|
|
|
43
60
|
__param(0, (0, common_1.Param)('id')),
|
|
44
61
|
__param(1, (0, common_1.Body)()),
|
|
45
62
|
__metadata("design:type", Function),
|
|
46
|
-
__metadata("design:paramtypes", [String,
|
|
63
|
+
__metadata("design:paramtypes", [String, DuplicateOneBody]),
|
|
47
64
|
__metadata("design:returntype", Promise)
|
|
48
65
|
], BaseDuplicateOneController.prototype, "duplicateOne", null);
|
|
49
66
|
Object.defineProperty(BaseDuplicateOneController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,qCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"duplicate-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-controller.mixin.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { EntityParam } from '../../dtos';
|
|
|
3
3
|
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
4
4
|
import { BaseEntity } from '../../models';
|
|
5
5
|
import { DuplicateOneService } from './duplicate-one-service.interface';
|
|
6
|
-
interface DuplicateOneGateway<Entity extends BaseEntity> {
|
|
7
|
-
duplicateOne(socket: ExtendedSocket, body: EntityParam &
|
|
6
|
+
interface DuplicateOneGateway<Entity extends BaseEntity, Body = any, Response = any> {
|
|
7
|
+
duplicateOne(socket: ExtendedSocket, body: EntityParam & Body): GatewayResponse<Entity | Response>;
|
|
8
8
|
}
|
|
9
9
|
type DuplicateOneGatewayConstructor<Entity extends BaseEntity> = new (service: DuplicateOneService<Entity>, jwtService: JwtService) => DuplicateOneGateway<Entity>;
|
|
10
10
|
export type { DuplicateOneGateway, DuplicateOneGatewayConstructor };
|
|
@@ -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 { DuplicateOneGatewayConstructor } from './duplicate-one-gateway.interface';
|
|
5
|
-
declare function DuplicateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneGatewayConstructor<Entity>;
|
|
5
|
+
declare function DuplicateOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): DuplicateOneGatewayConstructor<Entity>;
|
|
6
6
|
export { DuplicateOneGatewayMixin };
|
|
@@ -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 DuplicateOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
24
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
25
|
+
class DuplicateOneData extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity, true)) {
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(DuplicateOneData, 'name', {
|
|
28
|
+
value: `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
class DuplicateOneResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
32
|
+
}
|
|
33
|
+
Object.defineProperty(DuplicateOneResponse, 'name', {
|
|
34
|
+
value: dTOs?.presenter
|
|
35
|
+
? `DuplicateOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
36
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
25
39
|
class BaseDuplicateOneGateway extends gateways_1.BaseGateway {
|
|
26
40
|
constructor(service, jwtService) {
|
|
27
41
|
super(jwtService);
|
|
@@ -34,10 +48,13 @@ function DuplicateOneGatewayMixin(entity, controllerOptions, routeConfig, versio
|
|
|
34
48
|
throw new websockets_1.WsException('Invalid request body');
|
|
35
49
|
}
|
|
36
50
|
this.addUserToSocket(socket, isPublic);
|
|
37
|
-
const { id, ...
|
|
51
|
+
const { id, ...data } = body;
|
|
52
|
+
const toEntity = DuplicateOneData.toEntity;
|
|
53
|
+
const entity = await this.service.duplicateOne(id, !(0, lodash_1.isEmpty)(data) && toEntity ? toEntity(data) : data);
|
|
54
|
+
const fromEntity = DuplicateOneResponse.fromEntity;
|
|
38
55
|
return {
|
|
39
56
|
event,
|
|
40
|
-
data:
|
|
57
|
+
data: fromEntity ? fromEntity(entity) : entity,
|
|
41
58
|
};
|
|
42
59
|
}
|
|
43
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"duplicate-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/duplicate-one/duplicate-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,mCAAiC;AAEjC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAqE;AAKrE,SAAS,wBAAwB,CAC/B,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,gBAAiB,SAAQ,CAC7B,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAC5C;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;QAC9C,KAAK,EAAE,eAAe,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,MAAM;QACrE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,oBAAqB,SAAQ,CACjC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,eAAe,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,sBAAmB;QAGvD,YACqB,OAAoC,EACpC,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAA6B;YACpC,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,YAAY,CACG,MAA8B,EAClC,IAAoC;YAEnD,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,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;YAE7B,MAAM,QAAQ,GACZ,gBACD,CAAC,QAAQ,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5C,EAAE,EACF,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CACtE,CAAC;YAEF,MAAM,UAAU,GACd,oBACD,CAAC,UAAU,CAAC;YAEb,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAuB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;aACrE,CAAC;QACJ,CAAC;KACF;IA9BO;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;;;;+DA2Bf;IAGH,MAAM,CAAC,cAAc,CAAC,uBAAuB,EAAE,MAAM,EAAE;QACrD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAEQ,4DAAwB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { GetManyService } from './get-many-service.interface';
|
|
3
|
-
interface GetManyController<Entity extends BaseEntity> {
|
|
4
|
-
getMany(query?:
|
|
3
|
+
interface GetManyController<Entity extends BaseEntity, Query = any, Response = any> {
|
|
4
|
+
getMany(query?: Query): Promise<(Entity | Response)[]>;
|
|
5
5
|
}
|
|
6
6
|
type GetManyControllerConstructor<Entity extends BaseEntity> = new (service: GetManyService<Entity>) => GetManyController<Entity>;
|
|
7
7
|
export type { GetManyController, GetManyControllerConstructor };
|
|
@@ -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 { GetManyControllerConstructor } from './get-many-controller.interface';
|
|
5
|
-
declare function GetManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetManyControllerConstructor<Entity>;
|
|
5
|
+
declare function GetManyControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetManyControllerConstructor<Entity>;
|
|
6
6
|
export { GetManyControllerMixin };
|
|
@@ -18,16 +18,24 @@ const builders_1 = require("../../builders");
|
|
|
18
18
|
const dtos_1 = require("../../dtos");
|
|
19
19
|
const helpers_1 = require("../../helpers");
|
|
20
20
|
const mixins_1 = require("../../mixins");
|
|
21
|
-
function GetManyControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
22
|
-
const { routeType, displayedName, description, isPublic,
|
|
23
|
-
class
|
|
21
|
+
function GetManyControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
22
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
23
|
+
class GetManyQuery extends (dTOs?.query ?? dtos_1.EntityQuery) {
|
|
24
24
|
}
|
|
25
|
-
Object.defineProperty(
|
|
26
|
-
value:
|
|
25
|
+
Object.defineProperty(GetManyQuery, 'name', {
|
|
26
|
+
value: `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Query`,
|
|
27
|
+
writable: false,
|
|
28
|
+
});
|
|
29
|
+
class GetManyPresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(GetManyPresenter, 'name', {
|
|
32
|
+
value: dTOs?.presenter
|
|
33
|
+
? `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
34
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
|
|
27
35
|
writable: false,
|
|
28
36
|
});
|
|
29
37
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
30
|
-
presenter:
|
|
38
|
+
presenter: GetManyPresenter,
|
|
31
39
|
});
|
|
32
40
|
class GetManyPoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
33
41
|
}
|
|
@@ -41,7 +49,9 @@ function GetManyControllerMixin(entity, controllerOptions, routeConfig, version)
|
|
|
41
49
|
this.entity = entity;
|
|
42
50
|
}
|
|
43
51
|
async getMany(query) {
|
|
44
|
-
|
|
52
|
+
const list = await this.service.getMany(query);
|
|
53
|
+
const fromEntities = GetManyPresenter.fromEntities;
|
|
54
|
+
return fromEntities ? fromEntities(list) : list;
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
57
|
__decorate([
|
|
@@ -49,7 +59,7 @@ function GetManyControllerMixin(entity, controllerOptions, routeConfig, version)
|
|
|
49
59
|
(0, common_1.UseGuards)(GetManyPoliciesGuard),
|
|
50
60
|
__param(0, (0, common_1.Query)()),
|
|
51
61
|
__metadata("design:type", Function),
|
|
52
|
-
__metadata("design:paramtypes", [
|
|
62
|
+
__metadata("design:paramtypes", [GetManyQuery]),
|
|
53
63
|
__metadata("design:returntype", Promise)
|
|
54
64
|
], BaseGetManyController.prototype, "getMany", null);
|
|
55
65
|
Object.defineProperty(BaseGetManyController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"get-many-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,2CAAmG;AAEnG,yCAA8E;AAK9E,SAAS,sBAAsB,CAC7B,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,YAAa,SAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,kBAAW,CAAC;KAAG;IAE1D,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;QAC1C,KAAK,EAAE,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,OAAO;QACjE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,gBAAiB,SAAQ,CAC7B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE;QAC9C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YAChE,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,SAAS,EAAE,gBAAgB;KAC5B,CACF,CAAC;IAEF,MAAM,oBAAqB,SAAQ,IAAA,iCAAwB,EACzD,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,GAAG,SAAS,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,eAAe;QAC9E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,qBAAqB;QAGzB,YAA+B,OAA+B;YAA/B,YAAO,GAAP,OAAO,CAAwB;YAF3C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,OAAO,CAAU,KAAmB;YACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE/C,MAAM,YAAY,GAChB,gBACD,CAAC,YAAY,CAAC;YAEf,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,oBAAoB,CAAC;QACjB,WAAA,IAAA,cAAK,GAAE,CAAA;;yCAAQ,YAAY;;wDAQzC;IAGH,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,MAAM,EAAE;QACnD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC5E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAEQ,wDAAsB"}
|
|
@@ -2,8 +2,8 @@ import { JwtService } from '@nestjs/jwt';
|
|
|
2
2
|
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
3
3
|
import { BaseEntity } from '../../models';
|
|
4
4
|
import { GetManyService } from './get-many-service.interface';
|
|
5
|
-
interface GetManyGateway<Entity extends BaseEntity> {
|
|
6
|
-
getMany(socket: ExtendedSocket, body?: object): GatewayResponse<Entity[]>;
|
|
5
|
+
interface GetManyGateway<Entity extends BaseEntity, Response = any> {
|
|
6
|
+
getMany(socket: ExtendedSocket, body?: object): GatewayResponse<(Entity | Response)[]>;
|
|
7
7
|
}
|
|
8
8
|
type GetManyGatewayConstructor<Entity extends BaseEntity> = new (service: GetManyService<Entity>, jwtService: JwtService) => GetManyGateway<Entity>;
|
|
9
9
|
export type { GetManyGateway, GetManyGatewayConstructor };
|
|
@@ -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 { GetManyGatewayConstructor } from './get-many-gateway.interface';
|
|
5
|
-
declare function GetManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetManyGatewayConstructor<Entity>;
|
|
5
|
+
declare function GetManyGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetManyGatewayConstructor<Entity>;
|
|
6
6
|
export { GetManyGatewayMixin };
|
|
@@ -15,16 +15,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.GetManyGatewayMixin = 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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
const mixins_1 = require("../../mixins");
|
|
23
|
+
function GetManyGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
24
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
25
|
+
class GetManyData extends (dTOs?.query ?? dtos_1.EntityQuery) {
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
Object.defineProperty(GetManyData, 'name', {
|
|
28
|
+
value: `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Data`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
31
|
+
class GetManyResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
32
|
+
}
|
|
33
|
+
Object.defineProperty(GetManyResponse, 'name', {
|
|
34
|
+
value: dTOs?.presenter
|
|
35
|
+
? `GetMany${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
36
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
|
|
37
|
+
writable: false,
|
|
38
|
+
});
|
|
28
39
|
class BaseGetManyGateway extends gateways_1.BaseGateway {
|
|
29
40
|
constructor(service, jwtService) {
|
|
30
41
|
super(jwtService);
|
|
@@ -34,9 +45,11 @@ function GetManyGatewayMixin(entity, controllerOptions, routeConfig, version) {
|
|
|
34
45
|
}
|
|
35
46
|
async getMany(socket, body) {
|
|
36
47
|
this.addUserToSocket(socket, isPublic);
|
|
48
|
+
const list = await this.service.getMany(body);
|
|
49
|
+
const fromEntities = GetManyResponse.fromEntities;
|
|
37
50
|
return {
|
|
38
51
|
event,
|
|
39
|
-
data:
|
|
52
|
+
data: fromEntities ? fromEntities(list) : list,
|
|
40
53
|
};
|
|
41
54
|
}
|
|
42
55
|
}
|
|
@@ -46,7 +59,7 @@ function GetManyGatewayMixin(entity, controllerOptions, routeConfig, version) {
|
|
|
46
59
|
__param(0, (0, websockets_1.ConnectedSocket)()),
|
|
47
60
|
__param(1, (0, websockets_1.MessageBody)()),
|
|
48
61
|
__metadata("design:type", Function),
|
|
49
|
-
__metadata("design:paramtypes", [Object,
|
|
62
|
+
__metadata("design:paramtypes", [Object, GetManyData]),
|
|
50
63
|
__metadata("design:returntype", Promise)
|
|
51
64
|
], BaseGetManyGateway.prototype, "getMany", null);
|
|
52
65
|
Object.defineProperty(BaseGetManyGateway, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAoF;AACpF,
|
|
1
|
+
{"version":3,"file":"get-many-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-many/get-many-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAoF;AACpF,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAoD;AAKpD,SAAS,mBAAmB,CAC1B,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,WAAY,SAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,kBAAW,CAAC;KAAG;IAEzD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE;QACzC,KAAK,EAAE,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,MAAM;QAChE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,eAAgB,SAAQ,CAC5B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE;QAC7C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,UAAU,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YAC/D,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,kBAAmB,SAAQ,sBAAmB;QAGlD,YACqB,OAA+B,EAC/B,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAAwB;YAC/B,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAGK,AAAN,KAAK,CAAC,OAAO,CACQ,MAA8B,EAClC,IAAiB;YAEhC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAEvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE9C,MAAM,YAAY,GAChB,eACD,CAAC,YAAY,CAAC;YAEf,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAkB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;aAChE,CAAC;QACJ,CAAC;KACF;IAjBO;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,WAAW;;qDAcjC;IAGH,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,MAAM,EAAE;QAChD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEQ,kDAAmB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { GetOneService } from './get-one-service.interface';
|
|
3
|
-
interface GetOneController<Entity extends BaseEntity> {
|
|
4
|
-
getOne(id: string): Promise<Entity>;
|
|
3
|
+
interface GetOneController<Entity extends BaseEntity, Response = any> {
|
|
4
|
+
getOne(id: string): Promise<Entity | Response>;
|
|
5
5
|
}
|
|
6
6
|
type GetOneControllerConstructor<Entity extends BaseEntity> = new (service: GetOneService<Entity>) => GetOneController<Entity>;
|
|
7
7
|
export type { GetOneController, GetOneControllerConstructor };
|
|
@@ -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 { GetOneControllerConstructor } from './get-one-controller.interface';
|
|
5
|
-
declare function GetOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetOneControllerConstructor<Entity>;
|
|
5
|
+
declare function GetOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetOneControllerConstructor<Entity>;
|
|
6
6
|
export { GetOneControllerMixin };
|
|
@@ -18,11 +18,19 @@ const builders_1 = require("../../builders");
|
|
|
18
18
|
const dtos_1 = require("../../dtos");
|
|
19
19
|
const helpers_1 = require("../../helpers");
|
|
20
20
|
const mixins_1 = require("../../mixins");
|
|
21
|
-
function GetOneControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
22
|
-
const { routeType, displayedName, description, isPublic,
|
|
21
|
+
function GetOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
22
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
23
|
+
class GetOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(GetOnePresenter, 'name', {
|
|
26
|
+
value: dTOs?.presenter
|
|
27
|
+
? `GetOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`
|
|
28
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Presenter`,
|
|
29
|
+
writable: false,
|
|
30
|
+
});
|
|
23
31
|
const routeDecoratorsBuilder = new builders_1.RouteDecoratorsBuilder(routeType, entity, routeConfig.subPath, version, description, isPublic, {
|
|
24
32
|
param: dtos_1.EntityParam,
|
|
25
|
-
presenter:
|
|
33
|
+
presenter: GetOnePresenter,
|
|
26
34
|
});
|
|
27
35
|
class GetOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
28
36
|
}
|
|
@@ -32,7 +40,9 @@ function GetOneControllerMixin(entity, controllerOptions, routeConfig, version)
|
|
|
32
40
|
this.entity = entity;
|
|
33
41
|
}
|
|
34
42
|
async getOne(id) {
|
|
35
|
-
|
|
43
|
+
const entity = await this.service.getOne(id);
|
|
44
|
+
const fromEntity = GetOnePresenter.fromEntity;
|
|
45
|
+
return fromEntity ? fromEntity(entity) : entity;
|
|
36
46
|
}
|
|
37
47
|
}
|
|
38
48
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"get-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAwD;AACxD,qCAAyC;AACzC,2CAAmG;AAEnG,yCAA8E;AAK9E,SAAS,qBAAqB,CAC5B,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,eAAgB,SAAQ,CAC5B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE;QAC7C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,SAAS,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,WAAW;YAC/D,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,KAAK,EAAE,kBAAW;QAClB,SAAS,EAAE,eAAe;KAC3B,CACF,CAAC;IAEF,MAAM,mBAAoB,SAAQ,IAAA,iCAAwB,EACxD,MAAM,EACN,SAAS,EACT,aAAa,EACb,OAAO,EACP,gBAAgB,CACjB;KAAG;IAEJ,MAAM,oBAAoB;QAGxB,YAA+B,OAA8B;YAA9B,YAAO,GAAP,OAAO,CAAuB;YAF1C,WAAM,GAAG,MAAM,CAAC;QAGnC,CAAC;QAIK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU;YAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAE7C,MAAM,UAAU,GACd,eACD,CAAC,UAAU,CAAC;YAEb,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAkB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,CAAC;KACF;IATO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,mBAAmB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;;;;sDAQxB;IAGH,MAAM,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,EAAE;QAClD,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAEQ,sDAAqB"}
|
|
@@ -3,8 +3,8 @@ import { EntityParam } from '../../dtos';
|
|
|
3
3
|
import { ExtendedSocket, GatewayResponse } from '../../interfaces';
|
|
4
4
|
import { BaseEntity } from '../../models';
|
|
5
5
|
import { GetOneService } from './get-one-service.interface';
|
|
6
|
-
interface GetOneGateway<Entity extends BaseEntity> {
|
|
7
|
-
getOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<Entity |
|
|
6
|
+
interface GetOneGateway<Entity extends BaseEntity, Response = any> {
|
|
7
|
+
getOne(socket: ExtendedSocket, body: EntityParam): GatewayResponse<Entity | Response>;
|
|
8
8
|
}
|
|
9
9
|
type GetOneGatewayConstructor<Entity extends BaseEntity> = new (service: GetOneService<Entity>, jwtService: JwtService) => GetOneGateway<Entity>;
|
|
10
10
|
export type { GetOneGateway, GetOneGatewayConstructor };
|
|
@@ -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 { GetOneGatewayConstructor } from './get-one-gateway.interface';
|
|
5
|
-
declare function GetOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): GetOneGatewayConstructor<Entity>;
|
|
5
|
+
declare function GetOneGatewayMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): GetOneGatewayConstructor<Entity>;
|
|
6
6
|
export { GetOneGatewayMixin };
|
|
@@ -15,14 +15,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.GetOneGatewayMixin = 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
|
-
|
|
24
|
-
|
|
25
|
-
const event =
|
|
22
|
+
const mixins_1 = require("../../mixins");
|
|
23
|
+
function GetOneGatewayMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
24
|
+
const { routeType, displayedName, isPublic, event, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig, true);
|
|
25
|
+
class GetOneResponse extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(GetOneResponse, 'name', {
|
|
28
|
+
value: dTOs?.presenter
|
|
29
|
+
? `GetOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`
|
|
30
|
+
: `${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Response`,
|
|
31
|
+
writable: false,
|
|
32
|
+
});
|
|
26
33
|
class BaseGetOneGateway extends gateways_1.BaseGateway {
|
|
27
34
|
constructor(service, jwtService) {
|
|
28
35
|
super(jwtService);
|
|
@@ -35,9 +42,11 @@ function GetOneGatewayMixin(entity, controllerOptions, routeConfig, version) {
|
|
|
35
42
|
throw new websockets_1.WsException('Invalid request body');
|
|
36
43
|
}
|
|
37
44
|
this.addUserToSocket(socket, isPublic);
|
|
45
|
+
const entity = await this.service.getOne(body.id);
|
|
46
|
+
const fromEntity = GetOneResponse.fromEntity;
|
|
38
47
|
return {
|
|
39
48
|
event,
|
|
40
|
-
data:
|
|
49
|
+
data: fromEntity ? fromEntity(entity) : entity,
|
|
41
50
|
};
|
|
42
51
|
}
|
|
43
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,
|
|
1
|
+
{"version":3,"file":"get-one-gateway.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/get-one/get-one-gateway.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkD;AAElD,mDAAiG;AACjG,qCAAyC;AACzC,gHAAyG;AACzG,6CAA6C;AAC7C,2CAA4E;AAE5E,yCAAoD;AAKpD,SAAS,kBAAkB,CACzB,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,cAAe,SAAQ,CAC3B,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE;QAC5C,KAAK,EAAE,IAAI,EAAE,SAAS;YACpB,CAAC,CAAC,SAAS,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;YAC9D,CAAC,CAAC,GAAG,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,UAAU;QAC1D,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,iBAAkB,SAAQ,sBAAmB;QAGjD,YACqB,OAA8B,EAC9B,UAAsB;YAEzC,KAAK,CAAC,UAAU,CAAC,CAAC;YAHC,YAAO,GAAP,OAAO,CAAuB;YAC9B,eAAU,GAAV,UAAU,CAAY;YAJxB,WAAM,GAAG,MAAM,CAAC;QAOnC,CAAC;QAIK,AAAN,KAAK,CAAC,MAAM,CACS,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,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElD,MAAM,UAAU,GACd,cACD,CAAC,UAAU,CAAC;YAEb,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAiB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;aAC/D,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;;mDAkBjC;IAGH,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE;QAC/C,KAAK,EAAE,OAAO,IAAA,qBAAW,EAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;QACzE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAEQ,gDAAkB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from '../../models';
|
|
2
2
|
import { ReplaceOneService } from './replace-one-service.interface';
|
|
3
|
-
interface ReplaceOneController<Entity extends BaseEntity> {
|
|
4
|
-
replaceOne(id: string,
|
|
3
|
+
interface ReplaceOneController<Entity extends BaseEntity, Body = any, Response = any> {
|
|
4
|
+
replaceOne(id: string, body: Body): Promise<Entity | Response>;
|
|
5
5
|
}
|
|
6
6
|
type ReplaceOneControllerConstructor<Entity extends BaseEntity> = new (service: ReplaceOneService<Entity>) => ReplaceOneController<Entity>;
|
|
7
7
|
export type { ReplaceOneController, ReplaceOneControllerConstructor };
|
|
@@ -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 { ReplaceOneControllerConstructor } from './replace-one-controller.interface';
|
|
5
|
-
declare function ReplaceOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, routeConfig: DynamicAPIRouteConfig<Entity>, version?: string): ReplaceOneControllerConstructor<Entity>;
|
|
5
|
+
declare function ReplaceOneControllerMixin<Entity extends BaseEntity>(entity: Type<Entity>, controllerOptions: DynamicApiControllerOptions<Entity>, { dTOs, ...routeConfig }: DynamicAPIRouteConfig<Entity>, version?: string): ReplaceOneControllerConstructor<Entity>;
|
|
6
6
|
export { ReplaceOneControllerMixin };
|
|
@@ -15,15 +15,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.ReplaceOneControllerMixin = void 0;
|
|
16
16
|
const common_1 = require("@nestjs/common");
|
|
17
17
|
const builders_1 = require("../../builders");
|
|
18
|
+
const dtos_1 = require("../../dtos");
|
|
18
19
|
const helpers_1 = require("../../helpers");
|
|
19
20
|
const mixins_1 = require("../../mixins");
|
|
20
|
-
function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, version) {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
function ReplaceOneControllerMixin(entity, controllerOptions, { dTOs, ...routeConfig }, version) {
|
|
22
|
+
const { routeType, displayedName, description, isPublic, abilityPredicate, } = (0, helpers_1.getMixinData)(entity, controllerOptions, routeConfig);
|
|
23
|
+
class ReplaceOneBody extends (dTOs?.body ?? (0, mixins_1.EntityBodyMixin)(entity)) {
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(ReplaceOneBody, 'name', {
|
|
26
|
+
value: `ReplaceOne${displayedName}${(0, helpers_1.addVersionSuffix)(version)}Dto`,
|
|
27
|
+
writable: false,
|
|
28
|
+
});
|
|
29
|
+
class ReplaceOnePresenter extends (dTOs?.presenter ?? (0, mixins_1.EntityPresenterMixin)(entity)) {
|
|
30
|
+
}
|
|
31
|
+
Object.defineProperty(ReplaceOnePresenter, 'name', {
|
|
32
|
+
value: dTOs?.presenter
|
|
33
|
+
? `ReplaceOne${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
|
-
param: EntityParam,
|
|
25
|
-
body:
|
|
26
|
-
presenter:
|
|
38
|
+
param: dtos_1.EntityParam,
|
|
39
|
+
body: ReplaceOneBody,
|
|
40
|
+
presenter: ReplaceOnePresenter,
|
|
27
41
|
});
|
|
28
42
|
class ReplaceOnePoliciesGuard extends (0, mixins_1.CreatePoliciesGuardMixin)(entity, routeType, displayedName, version, abilityPredicate) {
|
|
29
43
|
}
|
|
@@ -33,7 +47,10 @@ function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, versi
|
|
|
33
47
|
this.entity = entity;
|
|
34
48
|
}
|
|
35
49
|
async replaceOne(id, body) {
|
|
36
|
-
|
|
50
|
+
const toEntity = ReplaceOneBody.toEntity;
|
|
51
|
+
const entity = await this.service.replaceOne(id, toEntity ? toEntity(body) : body);
|
|
52
|
+
const fromEntity = ReplaceOnePresenter.fromEntity;
|
|
53
|
+
return fromEntity ? fromEntity(entity) : entity;
|
|
37
54
|
}
|
|
38
55
|
}
|
|
39
56
|
__decorate([
|
|
@@ -42,7 +59,7 @@ function ReplaceOneControllerMixin(entity, controllerOptions, routeConfig, versi
|
|
|
42
59
|
__param(0, (0, common_1.Param)('id')),
|
|
43
60
|
__param(1, (0, common_1.Body)()),
|
|
44
61
|
__metadata("design:type", Function),
|
|
45
|
-
__metadata("design:paramtypes", [String,
|
|
62
|
+
__metadata("design:paramtypes", [String, ReplaceOneBody]),
|
|
46
63
|
__metadata("design:returntype", Promise)
|
|
47
64
|
], BaseReplaceOneController.prototype, "replaceOne", null);
|
|
48
65
|
Object.defineProperty(BaseReplaceOneController, 'name', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/replace-one/replace-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"replace-one-controller.mixin.js","sourceRoot":"","sources":["../../../../libs/dynamic-api/src/routes/replace-one/replace-one-controller.mixin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA8D;AAC9D,6CAAwD;AACxD,qCAAyC;AACzC,2CAAmG;AAEnG,yCAA+F;AAK/F,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,cAAe,SAAQ,CAC3B,IAAI,EAAE,IAAI,IAAI,IAAA,wBAAe,EAAC,MAAM,CAAC,CACtC;KAAG;IAEJ,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE;QAC5C,KAAK,EAAE,aAAa,aAAa,GAAG,IAAA,0BAAgB,EAAC,OAAO,CAAC,KAAK;QAClE,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,mBAAoB,SAAQ,CAChC,IAAI,EAAE,SAAS,IAAI,IAAA,6BAAoB,EAAC,MAAM,CAAC,CAChD;KAAG;IAEJ,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,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,KAAK,EAAE,kBAAW;QAClB,IAAI,EAAE,cAAc;QACpB,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,CAAc,EAAU,EAAU,IAAoB;YACpE,MAAM,QAAQ,GACZ,cACD,CAAC,QAAQ,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAuB,CAAC,CAAC;YAEtG,MAAM,UAAU,GACd,mBACD,CAAC,UAAU,CAAC;YAEb,OAAO,UAAU,CAAC,CAAC,CAAC,UAAU,CAAsB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACvE,CAAC;KACF;IAbO;QAFL,IAAA,+BAAqB,EAAC,sBAAsB,CAAC;QAC7C,IAAA,kBAAS,EAAC,uBAAuB,CAAC;QACjB,WAAA,IAAA,cAAK,EAAC,IAAI,CAAC,CAAA;QAAc,WAAA,IAAA,aAAI,GAAE,CAAA;;iDAAO,cAAc;;8DAYrE;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"}
|