@node-c/api-rest 1.0.0-alpha9 → 1.0.0-beta0
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/dist/entityController/dto/base.dto.d.ts +2 -2
- package/dist/entityController/dto/base.dto.js +3 -2
- package/dist/entityController/dto/base.dto.js.map +1 -1
- package/dist/entityController/dto/bulkCreate.dto.d.ts +1 -1
- package/dist/entityController/dto/bulkCreate.dto.js +2 -2
- package/dist/entityController/dto/bulkCreate.dto.js.map +1 -1
- package/dist/entityController/dto/create.dto.d.ts +1 -1
- package/dist/entityController/dto/create.dto.js +1 -1
- package/dist/entityController/dto/create.dto.js.map +1 -1
- package/dist/entityController/dto/delete.dto.d.ts +1 -0
- package/dist/entityController/dto/delete.dto.js +6 -0
- package/dist/entityController/dto/delete.dto.js.map +1 -1
- package/dist/entityController/dto/find.dto.d.ts +3 -2
- package/dist/entityController/dto/find.dto.js +12 -5
- package/dist/entityController/dto/find.dto.js.map +1 -1
- package/dist/entityController/dto/findOne.dto.d.ts +6 -4
- package/dist/entityController/dto/findOne.dto.js +6 -3
- package/dist/entityController/dto/findOne.dto.js.map +1 -1
- package/dist/entityController/dto/index.d.ts +0 -1
- package/dist/entityController/dto/index.js +0 -1
- package/dist/entityController/dto/index.js.map +1 -1
- package/dist/entityController/dto/update.dto.d.ts +2 -1
- package/dist/entityController/dto/update.dto.js +7 -2
- package/dist/entityController/dto/update.dto.js.map +1 -1
- package/dist/entityController/index.d.ts +1 -0
- package/dist/entityController/index.js +1 -0
- package/dist/entityController/index.js.map +1 -1
- package/dist/entityController/rest.entity.controller.d.ts +11 -14
- package/dist/entityController/rest.entity.controller.definitions.d.ts +2 -1
- package/dist/entityController/rest.entity.controller.dto.definitions.d.ts +11 -0
- package/dist/entityController/rest.entity.controller.dto.definitions.js +3 -0
- package/dist/entityController/rest.entity.controller.dto.definitions.js.map +1 -0
- package/dist/entityController/rest.entity.controller.js +10 -4
- package/dist/entityController/rest.entity.controller.js.map +1 -1
- package/package.json +7 -5
- package/src/entityController/dto/base.dto.ts +5 -4
- package/src/entityController/dto/bulkCreate.dto.ts +4 -4
- package/src/entityController/dto/create.dto.ts +2 -2
- package/src/entityController/dto/delete.dto.ts +6 -1
- package/src/entityController/dto/find.dto.ts +14 -8
- package/src/entityController/dto/findOne.dto.ts +17 -8
- package/src/entityController/dto/index.ts +0 -1
- package/src/entityController/dto/update.dto.ts +8 -4
- package/src/entityController/index.ts +1 -0
- package/src/entityController/rest.entity.controller.definitions.ts +17 -0
- package/src/entityController/rest.entity.controller.dto.definitions.ts +21 -0
- package/src/entityController/rest.entity.controller.ts +29 -37
- package/dist/entityController/dto/numberItem.dto.d.ts +0 -5
- package/dist/entityController/dto/numberItem.dto.js +0 -27
- package/dist/entityController/dto/numberItem.dto.js.map +0 -1
- package/src/entityController/dto/numberItem.dto.ts +0 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DomainBaseAdditionalServiceOptionsOverrides,
|
|
1
|
+
import { DomainBaseAdditionalServiceOptionsOverrides, DomainDataServicesKey, GenericObject } from '@node-c/core';
|
|
2
2
|
export declare class BaseDto<Options> {
|
|
3
3
|
optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
|
|
4
|
-
|
|
4
|
+
dataServices?: DomainDataServicesKey[];
|
|
5
5
|
}
|
|
@@ -15,13 +15,14 @@ class BaseDto {
|
|
|
15
15
|
}
|
|
16
16
|
exports.BaseDto = BaseDto;
|
|
17
17
|
__decorate([
|
|
18
|
-
(0, class_validator_1.
|
|
18
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
19
19
|
(0, class_validator_1.IsObject)(),
|
|
20
|
+
(0, class_validator_1.IsOptional)(),
|
|
20
21
|
__metadata("design:type", Object)
|
|
21
22
|
], BaseDto.prototype, "optionsOverridesByService", void 0);
|
|
22
23
|
__decorate([
|
|
23
24
|
(0, class_validator_1.IsArray)(),
|
|
24
25
|
(0, class_validator_1.IsOptional)(),
|
|
25
26
|
__metadata("design:type", Array)
|
|
26
|
-
], BaseDto.prototype, "
|
|
27
|
+
], BaseDto.prototype, "dataServices", void 0);
|
|
27
28
|
//# sourceMappingURL=base.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/base.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"base.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/base.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAkF;AAKlF,MAAa,OAAO;CASnB;AATD,0BASC;AALC;IAHC,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DAC6F;AAI1G;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;6CAC0B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseDto } from './base.dto';
|
|
2
2
|
import { BulkCreateBody, BulkCreateOptions } from '../rest.entity.controller.definitions';
|
|
3
3
|
export declare class BulkCreateDto<Entity, Options extends BulkCreateOptions<Entity>> extends BaseDto<Options> implements BulkCreateBody<Entity> {
|
|
4
|
-
data: Entity[];
|
|
4
|
+
data: Partial<Entity>[];
|
|
5
5
|
}
|
|
@@ -16,9 +16,9 @@ class BulkCreateDto extends base_dto_1.BaseDto {
|
|
|
16
16
|
}
|
|
17
17
|
exports.BulkCreateDto = BulkCreateDto;
|
|
18
18
|
__decorate([
|
|
19
|
+
(0, class_validator_1.ArrayNotEmpty)(),
|
|
20
|
+
(0, class_validator_1.IsArray)(),
|
|
19
21
|
(0, class_validator_1.IsDefined)(),
|
|
20
|
-
(0, class_validator_1.IsObject)(),
|
|
21
|
-
(0, class_validator_1.IsNotEmptyObject)(),
|
|
22
22
|
__metadata("design:type", Array)
|
|
23
23
|
], BulkCreateDto.prototype, "data", void 0);
|
|
24
24
|
//# sourceMappingURL=bulkCreate.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkCreate.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/bulkCreate.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"bulkCreate.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/bulkCreate.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAoE;AAEpE,yCAAqC;AAIrC,MAAa,aACX,SAAQ,kBAAgB;CAOzB;AARD,sCAQC;AADC;IAHC,IAAA,+BAAa,GAAE;IACf,IAAA,yBAAO,GAAE;IACT,IAAA,2BAAS,GAAE;;2CACY"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseDto } from './base.dto';
|
|
2
2
|
import { CreateBody, CreateOptions } from '../rest.entity.controller.definitions';
|
|
3
3
|
export declare class CreateDto<Entity, Options extends CreateOptions<Entity>> extends BaseDto<Options> implements CreateBody<Entity> {
|
|
4
|
-
data: Entity
|
|
4
|
+
data: Partial<Entity>;
|
|
5
5
|
}
|
|
@@ -17,8 +17,8 @@ class CreateDto extends base_dto_1.BaseDto {
|
|
|
17
17
|
exports.CreateDto = CreateDto;
|
|
18
18
|
__decorate([
|
|
19
19
|
(0, class_validator_1.IsDefined)(),
|
|
20
|
-
(0, class_validator_1.IsObject)(),
|
|
21
20
|
(0, class_validator_1.IsNotEmptyObject)(),
|
|
21
|
+
(0, class_validator_1.IsObject)(),
|
|
22
22
|
__metadata("design:type", Object)
|
|
23
23
|
], CreateDto.prototype, "data", void 0);
|
|
24
24
|
//# sourceMappingURL=create.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/create.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAwE;AAExE,yCAAqC;AAIrC,MAAa,SACX,SAAQ,kBAAgB;CAOzB;AARD,8BAQC;AADC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,
|
|
1
|
+
{"version":3,"file":"create.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/create.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAwE;AAExE,yCAAqC;AAIrC,MAAa,SACX,SAAQ,kBAAgB;CAOzB;AARD,8BAQC;AADC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;;uCACW"}
|
|
@@ -2,4 +2,5 @@ import { DomainDeleteOptions, GenericObject } from '@node-c/core';
|
|
|
2
2
|
import { BaseDto } from './base.dto';
|
|
3
3
|
export declare class DeleteDto<Options extends DomainDeleteOptions> extends BaseDto<Options> implements DomainDeleteOptions {
|
|
4
4
|
filters: GenericObject<unknown>;
|
|
5
|
+
returnOriginalItems?: boolean;
|
|
5
6
|
}
|
|
@@ -17,7 +17,13 @@ class DeleteDto extends base_dto_1.BaseDto {
|
|
|
17
17
|
exports.DeleteDto = DeleteDto;
|
|
18
18
|
__decorate([
|
|
19
19
|
(0, class_validator_1.IsDefined)(),
|
|
20
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
20
21
|
(0, class_validator_1.IsObject)(),
|
|
21
22
|
__metadata("design:type", Object)
|
|
22
23
|
], DeleteDto.prototype, "filters", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsBoolean)(),
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
27
|
+
__metadata("design:type", Boolean)
|
|
28
|
+
], DeleteDto.prototype, "returnOriginalItems", void 0);
|
|
23
29
|
//# sourceMappingURL=delete.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/delete.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"delete.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/delete.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAA+F;AAE/F,yCAAqC;AAErC,MAAa,SAA+C,SAAQ,kBAAgB;CASnF;AATD,8BASC;AALC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;;0CACqB;AAIhC;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;sDACiB"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { DomainFindOptions, GenericObject
|
|
1
|
+
import { DataOrderByDirection, DomainFindOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
import { BaseDto } from './base.dto';
|
|
3
3
|
export declare class FindDto<Options extends DomainFindOptions> extends BaseDto<Options> implements DomainFindOptions {
|
|
4
4
|
filters?: GenericObject;
|
|
5
5
|
findAll?: boolean;
|
|
6
6
|
include?: string[];
|
|
7
|
-
|
|
7
|
+
individualSearch?: boolean;
|
|
8
|
+
orderBy?: GenericObject<DataOrderByDirection>;
|
|
8
9
|
page?: number;
|
|
9
10
|
perPage?: number;
|
|
10
11
|
select?: string[];
|
|
@@ -16,38 +16,45 @@ class FindDto extends base_dto_1.BaseDto {
|
|
|
16
16
|
}
|
|
17
17
|
exports.FindDto = FindDto;
|
|
18
18
|
__decorate([
|
|
19
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
19
20
|
(0, class_validator_1.IsObject)(),
|
|
20
21
|
(0, class_validator_1.IsOptional)(),
|
|
21
22
|
__metadata("design:type", Object)
|
|
22
23
|
], FindDto.prototype, "filters", void 0);
|
|
23
24
|
__decorate([
|
|
24
|
-
(0, class_validator_1.IsOptional)(),
|
|
25
25
|
(0, class_validator_1.IsBooleanString)(),
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
26
27
|
__metadata("design:type", Boolean)
|
|
27
28
|
], FindDto.prototype, "findAll", void 0);
|
|
28
29
|
__decorate([
|
|
29
|
-
(0, class_validator_1.IsOptional)(),
|
|
30
30
|
(0, class_validator_1.IsArray)(),
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
31
32
|
__metadata("design:type", Array)
|
|
32
33
|
], FindDto.prototype, "include", void 0);
|
|
33
34
|
__decorate([
|
|
35
|
+
(0, class_validator_1.IsBooleanString)(),
|
|
34
36
|
(0, class_validator_1.IsOptional)(),
|
|
37
|
+
__metadata("design:type", Boolean)
|
|
38
|
+
], FindDto.prototype, "individualSearch", void 0);
|
|
39
|
+
__decorate([
|
|
35
40
|
(0, class_validator_1.IsObject)(),
|
|
41
|
+
(0, class_validator_1.IsOptional)(),
|
|
42
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
36
43
|
__metadata("design:type", Object)
|
|
37
44
|
], FindDto.prototype, "orderBy", void 0);
|
|
38
45
|
__decorate([
|
|
39
|
-
(0, class_validator_1.IsOptional)(),
|
|
40
46
|
(0, class_validator_1.IsNumberString)(),
|
|
47
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
48
|
__metadata("design:type", Number)
|
|
42
49
|
], FindDto.prototype, "page", void 0);
|
|
43
50
|
__decorate([
|
|
44
|
-
(0, class_validator_1.IsOptional)(),
|
|
45
51
|
(0, class_validator_1.IsNumberString)(),
|
|
52
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
53
|
__metadata("design:type", Number)
|
|
47
54
|
], FindDto.prototype, "perPage", void 0);
|
|
48
55
|
__decorate([
|
|
49
|
-
(0, class_validator_1.IsOptional)(),
|
|
50
56
|
(0, class_validator_1.IsArray)(),
|
|
57
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
58
|
__metadata("design:type", Array)
|
|
52
59
|
], FindDto.prototype, "select", void 0);
|
|
53
60
|
//# sourceMappingURL=find.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/find.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"find.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/find.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAmH;AAEnH,yCAAqC;AAErC,MAAa,OAA2C,SAAQ,kBAAgB;CAkC/E;AAlCD,0BAkCC;AA9BC;IAHC,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wCACW;AAIxB;IAFC,IAAA,iCAAe,GAAE;IACjB,IAAA,4BAAU,GAAE;;wCACK;AAIlB;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;wCACM;AAInB;IAFC,IAAA,iCAAe,GAAE;IACjB,IAAA,4BAAU,GAAE;;iDACc;AAK3B;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,kCAAgB,GAAE;;wCAC2B;AAI9C;IAFC,IAAA,gCAAc,GAAE;IAChB,IAAA,4BAAU,GAAE;;qCACC;AAId;IAFC,IAAA,gCAAc,GAAE;IAChB,IAAA,4BAAU,GAAE;;wCACI;AAIjB;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;uCACK"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { DomainFindOneOptions, GenericObject
|
|
1
|
+
import { DataOrderByDirection, DomainFindOneOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
import { BaseDto } from './base.dto';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
type DomainFindOneOptionsWithOptionalFilters = Omit<DomainFindOneOptions, 'filters'> & Partial<Pick<DomainFindOneOptions, 'filters'>>;
|
|
4
|
+
export declare class FindOneDto<Options extends DomainFindOneOptionsWithOptionalFilters> extends BaseDto<Options> implements DomainFindOneOptionsWithOptionalFilters {
|
|
5
|
+
filters?: GenericObject<unknown>;
|
|
5
6
|
include?: string[];
|
|
6
|
-
orderBy?: GenericObject<
|
|
7
|
+
orderBy?: GenericObject<DataOrderByDirection>;
|
|
7
8
|
select?: string[];
|
|
8
9
|
}
|
|
10
|
+
export {};
|
|
@@ -16,22 +16,25 @@ class FindOneDto extends base_dto_1.BaseDto {
|
|
|
16
16
|
}
|
|
17
17
|
exports.FindOneDto = FindOneDto;
|
|
18
18
|
__decorate([
|
|
19
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
19
20
|
(0, class_validator_1.IsObject)(),
|
|
21
|
+
(0, class_validator_1.IsOptional)(),
|
|
20
22
|
__metadata("design:type", Object)
|
|
21
23
|
], FindOneDto.prototype, "filters", void 0);
|
|
22
24
|
__decorate([
|
|
23
|
-
(0, class_validator_1.IsOptional)(),
|
|
24
25
|
(0, class_validator_1.IsArray)(),
|
|
26
|
+
(0, class_validator_1.IsOptional)(),
|
|
25
27
|
__metadata("design:type", Array)
|
|
26
28
|
], FindOneDto.prototype, "include", void 0);
|
|
27
29
|
__decorate([
|
|
28
|
-
(0, class_validator_1.
|
|
30
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
29
31
|
(0, class_validator_1.IsObject)(),
|
|
32
|
+
(0, class_validator_1.IsOptional)(),
|
|
30
33
|
__metadata("design:type", Object)
|
|
31
34
|
], FindOneDto.prototype, "orderBy", void 0);
|
|
32
35
|
__decorate([
|
|
33
|
-
(0, class_validator_1.IsOptional)(),
|
|
34
36
|
(0, class_validator_1.IsArray)(),
|
|
37
|
+
(0, class_validator_1.IsOptional)(),
|
|
35
38
|
__metadata("design:type", Array)
|
|
36
39
|
], FindOneDto.prototype, "select", void 0);
|
|
37
40
|
//# sourceMappingURL=findOne.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOne.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/findOne.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"findOne.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/findOne.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAAkF;AAElF,yCAAqC;AAKrC,MAAa,UACX,SAAQ,kBAAgB;CAoBzB;AArBD,gCAqBC;AAdC;IAHC,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2CACoB;AAIjC;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;2CACM;AAKnB;IAHC,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2CACiC;AAI9C;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;0CACK"}
|
|
@@ -20,7 +20,6 @@ __exportStar(require("./create.dto"), exports);
|
|
|
20
20
|
__exportStar(require("./delete.dto"), exports);
|
|
21
21
|
__exportStar(require("./find.dto"), exports);
|
|
22
22
|
__exportStar(require("./findOne.dto"), exports);
|
|
23
|
-
__exportStar(require("./numberItem.dto"), exports);
|
|
24
23
|
__exportStar(require("./update.dto"), exports);
|
|
25
24
|
__exportStar(require("./uploadFile.dto"), exports);
|
|
26
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entityController/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,gDAA8B;AAC9B
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entityController/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,mDAAiC;AACjC,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,gDAA8B;AAC9B,+CAA6B;AAC7B,mDAAiC"}
|
|
@@ -2,6 +2,7 @@ import { GenericObject } from '@node-c/core';
|
|
|
2
2
|
import { BaseDto } from './base.dto';
|
|
3
3
|
import { UpdateBody, UpdateOptions } from '../rest.entity.controller.definitions';
|
|
4
4
|
export declare class UpdateDto<Entity, Options extends UpdateOptions<Entity>> extends BaseDto<Options> implements UpdateBody<Entity> {
|
|
5
|
-
data: Entity
|
|
5
|
+
data: Partial<Entity>;
|
|
6
6
|
filters: GenericObject<unknown>;
|
|
7
|
+
returnData?: boolean;
|
|
7
8
|
}
|
|
@@ -17,14 +17,19 @@ class UpdateDto extends base_dto_1.BaseDto {
|
|
|
17
17
|
exports.UpdateDto = UpdateDto;
|
|
18
18
|
__decorate([
|
|
19
19
|
(0, class_validator_1.IsDefined)(),
|
|
20
|
-
(0, class_validator_1.IsObject)(),
|
|
21
20
|
(0, class_validator_1.IsNotEmptyObject)(),
|
|
21
|
+
(0, class_validator_1.IsObject)(),
|
|
22
22
|
__metadata("design:type", Object)
|
|
23
23
|
], UpdateDto.prototype, "data", void 0);
|
|
24
24
|
__decorate([
|
|
25
25
|
(0, class_validator_1.IsDefined)(),
|
|
26
|
-
(0, class_validator_1.IsObject)(),
|
|
27
26
|
(0, class_validator_1.IsNotEmptyObject)(),
|
|
27
|
+
(0, class_validator_1.IsObject)(),
|
|
28
28
|
__metadata("design:type", Object)
|
|
29
29
|
], UpdateDto.prototype, "filters", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, class_validator_1.IsOptional)(),
|
|
32
|
+
(0, class_validator_1.IsBoolean)(),
|
|
33
|
+
__metadata("design:type", Boolean)
|
|
34
|
+
], UpdateDto.prototype, "returnData", void 0);
|
|
30
35
|
//# sourceMappingURL=update.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/update.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,
|
|
1
|
+
{"version":3,"file":"update.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/update.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,qDAA+F;AAE/F,yCAAqC;AAIrC,MAAa,SACX,SAAQ,kBAAgB;CAgBzB;AAjBD,8BAiBC;AAVC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;;uCACW;AAKtB;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;;0CACqB;AAIhC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;6CACS"}
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./dto"), exports);
|
|
18
18
|
__exportStar(require("./rest.entity.controller"), exports);
|
|
19
19
|
__exportStar(require("./rest.entity.controller.definitions"), exports);
|
|
20
|
+
__exportStar(require("./rest.entity.controller.dto.definitions"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entityController/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2DAAyC;AACzC,uEAAqD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entityController/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,2DAAyC;AACzC,uEAAqD;AACrD,2EAAyD"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import { ValidationPipe } from '@nestjs/common';
|
|
2
|
-
import { DomainBulkCreateResult, DomainCreateResult, DomainDeleteOptions, DomainDeleteResult,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
export
|
|
6
|
-
export interface DefaultDtos<Entity> {
|
|
7
|
-
BulkCreate: BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
8
|
-
Create: BaseCreateDto<Entity, CreateOptions<Entity>>;
|
|
9
|
-
Delete: BaseDeleteDto<DomainDeleteOptions>;
|
|
10
|
-
Find: BaseFindDto<DomainFindOptions>;
|
|
11
|
-
FindOne: BaseFindOneDto<DomainFindOneOptions>;
|
|
12
|
-
Update: BaseUpdateDto<Entity, UpdateOptions<Entity>>;
|
|
13
|
-
}
|
|
14
|
-
export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>> {
|
|
2
|
+
import { DataDefaultData, DomainBulkCreateResult, DomainCreateResult, DomainDeleteOptions, DomainDeleteResult, DomainEntityServiceDefaultData, DomainFindOneOptions, DomainFindOneResult, DomainFindOptions, DomainFindResult, DomainUpdateResult } from '@node-c/core';
|
|
3
|
+
import { BulkCreateBody, CreateBody, DefaultDomainEntityService, UpdateBody } from './rest.entity.controller.definitions';
|
|
4
|
+
import { DefaultDtos } from './rest.entity.controller.dto.definitions';
|
|
5
|
+
export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>, DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>, DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>> {
|
|
15
6
|
protected domainEntityService: EntityDomainService;
|
|
16
7
|
protected defaultRouteMethods?: string[] | undefined;
|
|
17
8
|
inUseDefaultRoutes: {
|
|
@@ -27,7 +18,7 @@ export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainServic
|
|
|
27
18
|
refreshDefaultRoutes(newDefaultRoutes?: string[]): void;
|
|
28
19
|
update(_body: UpdateBody<Entity>, ..._args: unknown[]): Promise<DomainUpdateResult<Entity> | void>;
|
|
29
20
|
}
|
|
30
|
-
export declare class RESTAPIEntityControler<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>, Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>> extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
|
|
21
|
+
export declare class RESTAPIEntityControler<Entity, EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>, Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>, DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>, DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>> extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
|
|
31
22
|
protected domainEntityService: EntityDomainService;
|
|
32
23
|
protected dto: {
|
|
33
24
|
bulkCreate?: Dto['BulkCreate'];
|
|
@@ -38,6 +29,9 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
|
|
|
38
29
|
update?: Dto['Update'];
|
|
39
30
|
};
|
|
40
31
|
protected defaultRouteMethods: string[];
|
|
32
|
+
protected settings: {
|
|
33
|
+
validationWhitelist?: boolean;
|
|
34
|
+
};
|
|
41
35
|
protected validationPipe: ValidationPipe;
|
|
42
36
|
constructor(domainEntityService: EntityDomainService, dto: {
|
|
43
37
|
bulkCreate?: Dto['BulkCreate'];
|
|
@@ -54,8 +48,11 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
|
|
|
54
48
|
findOne(id: number | string, query: Dto['FindOne'], ...args: unknown[]): Promise<DomainFindOneResult<Entity> | void>;
|
|
55
49
|
static getDefaultDtos<EntityForDtos>(): {
|
|
56
50
|
bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
|
|
51
|
+
create: DefaultDtos<EntityForDtos>['Create'];
|
|
52
|
+
delete: DefaultDtos<EntityForDtos>['Delete'];
|
|
57
53
|
find: DefaultDtos<EntityForDtos>['Find'];
|
|
58
54
|
findOne: DefaultDtos<EntityForDtos>['FindOne'];
|
|
55
|
+
update: DefaultDtos<EntityForDtos>['Update'];
|
|
59
56
|
};
|
|
60
57
|
update(body: Dto['Update'], ...args: unknown[]): Promise<DomainUpdateResult<Entity> | void>;
|
|
61
58
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DomainBulkCreateData, DomainBulkCreateOptions, DomainCreateData, DomainCreateOptions, DomainUpdateData, DomainUpdateOptions, GenericObject } from '@node-c/core';
|
|
1
|
+
import { DataDefaultData, DataEntityService, DomainBulkCreateData, DomainBulkCreateOptions, DomainCreateData, DomainCreateOptions, DomainEntityService, DomainEntityServiceDefaultData, DomainUpdateData, DomainUpdateOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
export interface BulkCreateBody<Entity> extends DomainBulkCreateOptions {
|
|
3
3
|
data: DomainBulkCreateData<Entity>;
|
|
4
4
|
}
|
|
@@ -7,6 +7,7 @@ export interface CreateBody<Entity> extends DomainCreateOptions {
|
|
|
7
7
|
data: DomainCreateData<Entity>;
|
|
8
8
|
}
|
|
9
9
|
export type CreateOptions<Entity> = Omit<CreateBody<Entity>, 'data'>;
|
|
10
|
+
export type DefaultDomainEntityService<Entity, DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>, DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>> = DomainEntityService<Entity, DataEntityService<Entity, DataEntityServiceData>, DomainEntityServiceData, Record<string, DataEntityService<Partial<Entity>, DataDefaultData<object>>>, DataEntityServiceData>;
|
|
10
11
|
export interface UpdateBody<Entity> extends DomainUpdateOptions {
|
|
11
12
|
data: DomainUpdateData<Entity>;
|
|
12
13
|
filters: GenericObject<unknown>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DomainDeleteOptions, DomainFindOneOptions, DomainFindOptions } from '@node-c/core';
|
|
2
|
+
import { BulkCreateDto as BaseBulkCreateDto, CreateDto as BaseCreateDto, DeleteDto as BaseDeleteDto, FindDto as BaseFindDto, FindOneDto as BaseFindOneDto, UpdateDto as BaseUpdateDto } from './dto';
|
|
3
|
+
import { BulkCreateOptions, CreateOptions, UpdateOptions } from './rest.entity.controller.definitions';
|
|
4
|
+
export interface DefaultDtos<Entity> {
|
|
5
|
+
BulkCreate: BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
6
|
+
Create: BaseCreateDto<Entity, CreateOptions<Entity>>;
|
|
7
|
+
Delete: BaseDeleteDto<DomainDeleteOptions>;
|
|
8
|
+
Find: BaseFindDto<DomainFindOptions>;
|
|
9
|
+
FindOne: BaseFindOneDto<DomainFindOneOptions>;
|
|
10
|
+
Update: BaseUpdateDto<Entity, UpdateOptions<Entity>>;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.entity.controller.dto.definitions.js","sourceRoot":"","sources":["../../src/entityController/rest.entity.controller.dto.definitions.ts"],"names":[],"mappings":""}
|
|
@@ -95,7 +95,8 @@ let RESTAPIEntityControlerWithoutDto = class RESTAPIEntityControlerWithoutDto {
|
|
|
95
95
|
update(body) {
|
|
96
96
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
97
|
this.checkRoute('update');
|
|
98
|
-
|
|
98
|
+
const { data } = body, options = __rest(body, ["data"]);
|
|
99
|
+
return yield this.domainEntityService.update(data, options);
|
|
99
100
|
});
|
|
100
101
|
}
|
|
101
102
|
};
|
|
@@ -144,7 +145,7 @@ __decorate([
|
|
|
144
145
|
__metadata("design:returntype", Promise)
|
|
145
146
|
], RESTAPIEntityControlerWithoutDto.prototype, "update", null);
|
|
146
147
|
exports.RESTAPIEntityControlerWithoutDto = RESTAPIEntityControlerWithoutDto = __decorate([
|
|
147
|
-
(0, common_1.UseInterceptors)(api_http_1.
|
|
148
|
+
(0, common_1.UseInterceptors)(api_http_1.HTTPAccessControlInterceptor, api_http_1.HTTPErrorInterceptor),
|
|
148
149
|
__metadata("design:paramtypes", [Object, Array])
|
|
149
150
|
], RESTAPIEntityControlerWithoutDto);
|
|
150
151
|
class RESTAPIEntityControler extends RESTAPIEntityControlerWithoutDto {
|
|
@@ -152,7 +153,9 @@ class RESTAPIEntityControler extends RESTAPIEntityControlerWithoutDto {
|
|
|
152
153
|
super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
153
154
|
this.domainEntityService = domainEntityService;
|
|
154
155
|
this.dto = dto;
|
|
155
|
-
this.
|
|
156
|
+
this.settings = { validationWhitelist: true };
|
|
157
|
+
const { validationWhitelist } = this.settings;
|
|
158
|
+
this.validationPipe = new common_1.ValidationPipe({ whitelist: validationWhitelist });
|
|
156
159
|
}
|
|
157
160
|
bulkCreate(body, ...args) {
|
|
158
161
|
const _super = Object.create(null, {
|
|
@@ -228,8 +231,11 @@ class RESTAPIEntityControler extends RESTAPIEntityControlerWithoutDto {
|
|
|
228
231
|
static getDefaultDtos() {
|
|
229
232
|
return {
|
|
230
233
|
bulkCreate: dto_1.BulkCreateDto,
|
|
234
|
+
create: dto_1.CreateDto,
|
|
235
|
+
delete: dto_1.DeleteDto,
|
|
231
236
|
find: dto_1.FindDto,
|
|
232
|
-
findOne: dto_1.
|
|
237
|
+
findOne: dto_1.FindOneDto,
|
|
238
|
+
update: dto_1.UpdateDto
|
|
233
239
|
};
|
|
234
240
|
}
|
|
235
241
|
update(body, ...args) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest.entity.controller.js","sourceRoot":"","sources":["../../src/entityController/rest.entity.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAawB;AAExB,+CAAsF;
|
|
1
|
+
{"version":3,"file":"rest.entity.controller.js","sourceRoot":"","sources":["../../src/entityController/rest.entity.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAawB;AAExB,+CAAsF;AAgBtF,+BAOe;AAWR,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IAQ3C,YAEY,mBAAwC,EAExC,mBAA8B;QAF9B,wBAAmB,GAAnB,mBAAmB,CAAqB;QAExC,wBAAmB,GAAnB,mBAAmB,CAAW;QAExC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAES,UAAU,CAAC,WAAmB;QACtC,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,sBAAa,CAAC,WAAW,EAAE,mBAAU,CAAC,SAAS,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAIK,UAAU,CAAS,IAA4B;;YACnD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAC9B,MAAM,EAAE,IAAI,KAAiB,IAAI,EAAhB,OAAO,UAAK,IAAI,EAA3B,QAAoB,CAAO,CAAC;YAClC,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;KAAA;IAIK,MAAM,CAAS,IAAwB;;YAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,EAAE,IAAI,KAAiB,IAAI,EAAhB,OAAO,UAAK,IAAI,EAA3B,QAAoB,CAAO,CAAC;YAClC,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;KAAA;IAIK,MAAM,CAAS,IAAyB;;YAC5C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;KAAA;IAIK,IAAI,CAAU,KAAwB;;YAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACxB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;KAAA;IAQK,OAAO,CACF,EAAmB,EACnB,KAA2B;;YAEpC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,EAAE,CAAC;gBACb,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;YAChB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;KAAA;IAED,oBAAoB,CAAC,gBAA2B;QAC9C,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,IAAI,CAAC,mBAAmB,CAAC;QACzE,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC7B,IAAI,mBAAmB,YAAY,KAAK,EAAE,CAAC;YACzC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAIK,MAAM,CAAS,IAAwB;;YAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,EAAE,IAAI,KAAiB,IAAI,EAAhB,OAAO,UAAK,IAAI,EAA3B,QAAoB,CAAO,CAAC;YAClC,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9D,CAAC;KAAA;CACF,CAAA;AAxFY,4EAAgC;AAyBrC;IADL,IAAA,aAAI,EAAC,MAAM,CAAC;IACK,WAAA,IAAA,aAAI,GAAE,CAAA;;;;kEAIvB;AAIK;IADL,IAAA,aAAI,GAAE;IACO,WAAA,IAAA,aAAI,GAAE,CAAA;;;;8DAInB;AAIK;IADL,IAAA,eAAM,GAAE;IACK,WAAA,IAAA,aAAI,GAAE,CAAA;;;;8DAGnB;AAIK;IADL,IAAA,YAAG,GAAE;IACM,WAAA,IAAA,cAAK,GAAE,CAAA;;;;4DAGlB;AAQK;IADL,IAAA,YAAG,EAAC,WAAW,CAAC;IAEd,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,cAAK,GAAE,CAAA;;;;+DAUT;AAYK;IADL,IAAA,cAAK,GAAE;IACM,WAAA,IAAA,aAAI,GAAE,CAAA;;;;8DAInB;2CAvFU,gCAAgC;IAD5C,IAAA,wBAAe,EAAC,uCAA4B,EAAE,+BAAoB,CAAC;;GACvD,gCAAgC,CAwF5C;AAOD,MAAa,sBAMX,SAAQ,gCAA6D;IAKrE,YACY,mBAAwC,EACxC,GAOT,EACD,mBAA8B;QAE9B,KAAK,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,CAAC;QAX3E,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,QAAG,GAAH,GAAG,CAOZ;QAZO,aAAQ,GAAsC,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;QAkBpF,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,uBAAc,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC/E,CAAC;IAGK,UAAU,CACN,IAAuB,EAC/B,GAAG,IAAe;;;;;YAElB,OAAO,MAAM,OAAM,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE;gBACxC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;oBACxC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,UAA6B;oBAChD,IAAI,EAAE,MAAM;iBACb,CAAC;gBACF,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;IAGK,MAAM,CAEV,IAAmB,EACnB,GAAG,IAAe;;;;;YAElB,OAAO,MAAM,OAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;oBACxC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAyB;oBAC5C,IAAI,EAAE,MAAM;iBACb,CAAC;gBACF,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;IAGK,MAAM,CAAS,IAAmB,EAAE,GAAG,IAAe;;;;;YAC1D,OAAO,MAAM,OAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;oBACxC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAyB;oBAC5C,IAAI,EAAE,MAAM;iBACb,CAAC;gBACF,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;IAGK,IAAI,CAAU,KAAkB,EAAE,GAAG,IAAe;;;;;YACxD,OAAO,MAAM,OAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBAClC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE;oBACzC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAuB;oBAC1C,IAAI,EAAE,OAAO;iBACd,CAAC;gBACF,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;IAGK,OAAO,CACF,EAAmB,EACnB,KAAqB,EAC9B,GAAG,IAAe;;;;;YAElB,OAAO,MAAM,OAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;gBACrC,EAAE;gBACF,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE;oBACzC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,OAA0B;oBAC7C,IAAI,EAAE,OAAO;iBACd,CAAC;gBACF,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;IAED,MAAM,CAAC,cAAc;QAQnB,OAAO;YACL,UAAU,EAAE,mBAAwE;YACpF,MAAM,EAAE,eAAgE;YACxE,MAAM,EAAE,eAAgE;YACxE,IAAI,EAAE,aAA4D;YAClE,OAAO,EAAE,gBAAkE;YAC3E,MAAM,EAAE,eAAgE;SACzE,CAAC;IACJ,CAAC;IAGK,MAAM,CAAS,IAAmB,EAAE,GAAG,IAAe;;;;;YAC1D,OAAO,MAAM,OAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBACpC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE;oBACxC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,MAAyB;oBAC5C,IAAI,EAAE,MAAM;iBACb,CAAC;gBACF,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AA7HD,wDA6HC;AA9FO;IADL,IAAA,aAAI,EAAC,MAAM,CAAC;IAEV,WAAA,IAAA,aAAI,GAAE,CAAA;;;;wDAUR;AAGK;IADL,IAAA,aAAI,GAAE;IAEJ,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAWR;AAGK;IADL,IAAA,eAAM,GAAE;IACK,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAQnB;AAGK;IADL,IAAA,YAAG,GAAE;IACM,WAAA,IAAA,cAAK,GAAE,CAAA;;;;kDAQlB;AAGK;IADL,IAAA,YAAG,EAAC,WAAW,CAAC;IAEd,WAAA,IAAA,cAAK,GAAE,CAAA;IACP,WAAA,IAAA,cAAK,GAAE,CAAA;;;;qDAWT;AAqBK;IADL,IAAA,cAAK,GAAE;IACM,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAQnB"}
|
package/package.json
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-c/api-rest",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-beta0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc -p tsconfig.build.json",
|
|
8
|
+
"build:clean": "rm -rf dist/* && rm -f *.tsbuildinfo && npm run build",
|
|
8
9
|
"check-types": "tsc -p tsconfig.build.json --noEmit",
|
|
9
10
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
10
|
-
"
|
|
11
|
+
"lint": "eslint src",
|
|
12
|
+
"publish-package": "npm run build:clean && npm publish --access public",
|
|
11
13
|
"test": "vitest --config src/vitest.config.ts",
|
|
12
14
|
"test:coverage": "vitest --config src/vitest.config.ts --coverage"
|
|
13
15
|
},
|
|
14
16
|
"dependencies": {
|
|
15
|
-
"@nestjs/common": "^
|
|
17
|
+
"@nestjs/common": "^11.1.16",
|
|
16
18
|
"class-transformer": "^0.5.1",
|
|
17
19
|
"class-validator": "^0.14.1"
|
|
18
20
|
},
|
|
19
21
|
"peerDependencies": {
|
|
20
|
-
"@node-c/api-http": "^1.0.0-
|
|
21
|
-
"@node-c/core": "^1.0.0-
|
|
22
|
+
"@node-c/api-http": "^1.0.0-beta0",
|
|
23
|
+
"@node-c/core": "^1.0.0-beta0"
|
|
22
24
|
}
|
|
23
25
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { DomainBaseAdditionalServiceOptionsOverrides,
|
|
1
|
+
import { DomainBaseAdditionalServiceOptionsOverrides, DomainDataServicesKey, GenericObject } from '@node-c/core';
|
|
2
2
|
|
|
3
|
-
import { IsArray, IsObject, IsOptional } from 'class-validator';
|
|
3
|
+
import { IsArray, IsNotEmptyObject, IsObject, IsOptional } from 'class-validator';
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
6
|
* We need the Options type here, so we can easily extend overriden classes' BaseDto
|
|
7
7
|
*/
|
|
8
8
|
export class BaseDto<Options> {
|
|
9
|
-
@
|
|
9
|
+
@IsNotEmptyObject()
|
|
10
10
|
@IsObject()
|
|
11
|
+
@IsOptional()
|
|
11
12
|
optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
|
|
12
13
|
|
|
13
14
|
@IsArray()
|
|
14
15
|
@IsOptional()
|
|
15
|
-
|
|
16
|
+
dataServices?: DomainDataServicesKey[];
|
|
16
17
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ArrayNotEmpty, IsArray, IsDefined } from 'class-validator';
|
|
2
2
|
|
|
3
3
|
import { BaseDto } from './base.dto';
|
|
4
4
|
|
|
@@ -8,8 +8,8 @@ export class BulkCreateDto<Entity, Options extends BulkCreateOptions<Entity>>
|
|
|
8
8
|
extends BaseDto<Options>
|
|
9
9
|
implements BulkCreateBody<Entity>
|
|
10
10
|
{
|
|
11
|
+
@ArrayNotEmpty()
|
|
12
|
+
@IsArray()
|
|
11
13
|
@IsDefined()
|
|
12
|
-
|
|
13
|
-
@IsNotEmptyObject()
|
|
14
|
-
data: Entity[];
|
|
14
|
+
data: Partial<Entity>[];
|
|
15
15
|
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { DomainDeleteOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
|
|
3
|
-
import { IsDefined, IsObject } from 'class-validator';
|
|
3
|
+
import { IsBoolean, IsDefined, IsNotEmptyObject, IsObject, IsOptional } from 'class-validator';
|
|
4
4
|
|
|
5
5
|
import { BaseDto } from './base.dto';
|
|
6
6
|
|
|
7
7
|
export class DeleteDto<Options extends DomainDeleteOptions> extends BaseDto<Options> implements DomainDeleteOptions {
|
|
8
8
|
@IsDefined()
|
|
9
|
+
@IsNotEmptyObject()
|
|
9
10
|
@IsObject()
|
|
10
11
|
filters: GenericObject<unknown>;
|
|
12
|
+
|
|
13
|
+
@IsBoolean()
|
|
14
|
+
@IsOptional()
|
|
15
|
+
returnOriginalItems?: boolean;
|
|
11
16
|
}
|
|
@@ -1,35 +1,41 @@
|
|
|
1
|
-
import { DomainFindOptions, GenericObject
|
|
1
|
+
import { DataOrderByDirection, DomainFindOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
|
|
3
|
-
import { IsArray, IsBooleanString, IsNumberString, IsObject, IsOptional } from 'class-validator';
|
|
3
|
+
import { IsArray, IsBooleanString, IsNotEmptyObject, IsNumberString, IsObject, IsOptional } from 'class-validator';
|
|
4
4
|
|
|
5
5
|
import { BaseDto } from './base.dto';
|
|
6
6
|
|
|
7
7
|
export class FindDto<Options extends DomainFindOptions> extends BaseDto<Options> implements DomainFindOptions {
|
|
8
|
+
@IsNotEmptyObject()
|
|
8
9
|
@IsObject()
|
|
9
10
|
@IsOptional()
|
|
10
11
|
filters?: GenericObject;
|
|
11
12
|
|
|
12
|
-
@IsOptional()
|
|
13
13
|
@IsBooleanString()
|
|
14
|
+
@IsOptional()
|
|
14
15
|
findAll?: boolean;
|
|
15
16
|
|
|
16
|
-
@IsOptional()
|
|
17
17
|
@IsArray()
|
|
18
|
+
@IsOptional()
|
|
18
19
|
include?: string[];
|
|
19
20
|
|
|
21
|
+
@IsBooleanString()
|
|
20
22
|
@IsOptional()
|
|
21
|
-
|
|
22
|
-
orderBy?: GenericObject<PersistanceOrderByDirection>;
|
|
23
|
+
individualSearch?: boolean;
|
|
23
24
|
|
|
25
|
+
@IsObject()
|
|
24
26
|
@IsOptional()
|
|
27
|
+
@IsNotEmptyObject()
|
|
28
|
+
orderBy?: GenericObject<DataOrderByDirection>;
|
|
29
|
+
|
|
25
30
|
@IsNumberString()
|
|
31
|
+
@IsOptional()
|
|
26
32
|
page?: number;
|
|
27
33
|
|
|
28
|
-
@IsOptional()
|
|
29
34
|
@IsNumberString()
|
|
35
|
+
@IsOptional()
|
|
30
36
|
perPage?: number;
|
|
31
37
|
|
|
32
|
-
@IsOptional()
|
|
33
38
|
@IsArray()
|
|
39
|
+
@IsOptional()
|
|
34
40
|
select?: string[];
|
|
35
41
|
}
|
|
@@ -1,22 +1,31 @@
|
|
|
1
|
-
import { DomainFindOneOptions, GenericObject
|
|
1
|
+
import { DataOrderByDirection, DomainFindOneOptions, GenericObject } from '@node-c/core';
|
|
2
2
|
|
|
3
|
-
import { IsArray, IsObject, IsOptional } from 'class-validator';
|
|
3
|
+
import { IsArray, IsNotEmptyObject, IsObject, IsOptional } from 'class-validator';
|
|
4
4
|
|
|
5
5
|
import { BaseDto } from './base.dto';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
filters: GenericObject<unknown>;
|
|
7
|
+
type DomainFindOneOptionsWithOptionalFilters = Omit<DomainFindOneOptions, 'filters'> &
|
|
8
|
+
Partial<Pick<DomainFindOneOptions, 'filters'>>;
|
|
10
9
|
|
|
10
|
+
export class FindOneDto<Options extends DomainFindOneOptionsWithOptionalFilters>
|
|
11
|
+
extends BaseDto<Options>
|
|
12
|
+
implements DomainFindOneOptionsWithOptionalFilters
|
|
13
|
+
{
|
|
14
|
+
@IsNotEmptyObject()
|
|
15
|
+
@IsObject()
|
|
11
16
|
@IsOptional()
|
|
17
|
+
filters?: GenericObject<unknown>;
|
|
18
|
+
|
|
12
19
|
@IsArray()
|
|
20
|
+
@IsOptional()
|
|
13
21
|
include?: string[];
|
|
14
22
|
|
|
15
|
-
@
|
|
23
|
+
@IsNotEmptyObject()
|
|
16
24
|
@IsObject()
|
|
17
|
-
orderBy?: GenericObject<PersistanceOrderByDirection>;
|
|
18
|
-
|
|
19
25
|
@IsOptional()
|
|
26
|
+
orderBy?: GenericObject<DataOrderByDirection>;
|
|
27
|
+
|
|
20
28
|
@IsArray()
|
|
29
|
+
@IsOptional()
|
|
21
30
|
select?: string[];
|
|
22
31
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GenericObject } from '@node-c/core';
|
|
2
2
|
|
|
3
|
-
import { IsDefined, IsNotEmptyObject, IsObject } from 'class-validator';
|
|
3
|
+
import { IsBoolean, IsDefined, IsNotEmptyObject, IsObject, IsOptional } from 'class-validator';
|
|
4
4
|
|
|
5
5
|
import { BaseDto } from './base.dto';
|
|
6
6
|
|
|
@@ -11,12 +11,16 @@ export class UpdateDto<Entity, Options extends UpdateOptions<Entity>>
|
|
|
11
11
|
implements UpdateBody<Entity>
|
|
12
12
|
{
|
|
13
13
|
@IsDefined()
|
|
14
|
-
@IsObject()
|
|
15
14
|
@IsNotEmptyObject()
|
|
16
|
-
|
|
15
|
+
@IsObject()
|
|
16
|
+
data: Partial<Entity>;
|
|
17
17
|
|
|
18
18
|
@IsDefined()
|
|
19
|
-
@IsObject()
|
|
20
19
|
@IsNotEmptyObject()
|
|
20
|
+
@IsObject()
|
|
21
21
|
filters: GenericObject<unknown>;
|
|
22
|
+
|
|
23
|
+
@IsOptional()
|
|
24
|
+
@IsBoolean()
|
|
25
|
+
returnData?: boolean;
|
|
22
26
|
}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
+
DataDefaultData,
|
|
3
|
+
DataEntityService,
|
|
2
4
|
DomainBulkCreateData,
|
|
3
5
|
DomainBulkCreateOptions,
|
|
4
6
|
DomainCreateData,
|
|
5
7
|
DomainCreateOptions,
|
|
8
|
+
DomainEntityService,
|
|
9
|
+
DomainEntityServiceDefaultData,
|
|
6
10
|
DomainUpdateData,
|
|
7
11
|
DomainUpdateOptions,
|
|
8
12
|
GenericObject
|
|
@@ -20,6 +24,19 @@ export interface CreateBody<Entity> extends DomainCreateOptions {
|
|
|
20
24
|
|
|
21
25
|
export type CreateOptions<Entity> = Omit<CreateBody<Entity>, 'data'>;
|
|
22
26
|
|
|
27
|
+
// These types and interfaces have to be here to avoid circular dependencies.
|
|
28
|
+
export type DefaultDomainEntityService<
|
|
29
|
+
Entity,
|
|
30
|
+
DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>,
|
|
31
|
+
DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>
|
|
32
|
+
> = DomainEntityService<
|
|
33
|
+
Entity,
|
|
34
|
+
DataEntityService<Entity, DataEntityServiceData>,
|
|
35
|
+
DomainEntityServiceData,
|
|
36
|
+
Record<string, DataEntityService<Partial<Entity>, DataDefaultData<object>>>,
|
|
37
|
+
DataEntityServiceData
|
|
38
|
+
>;
|
|
39
|
+
|
|
23
40
|
export interface UpdateBody<Entity> extends DomainUpdateOptions {
|
|
24
41
|
data: DomainUpdateData<Entity>;
|
|
25
42
|
filters: GenericObject<unknown>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { DomainDeleteOptions, DomainFindOneOptions, DomainFindOptions } from '@node-c/core';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
BulkCreateDto as BaseBulkCreateDto,
|
|
5
|
+
CreateDto as BaseCreateDto,
|
|
6
|
+
DeleteDto as BaseDeleteDto,
|
|
7
|
+
FindDto as BaseFindDto,
|
|
8
|
+
FindOneDto as BaseFindOneDto,
|
|
9
|
+
UpdateDto as BaseUpdateDto
|
|
10
|
+
} from './dto';
|
|
11
|
+
|
|
12
|
+
import { BulkCreateOptions, CreateOptions, UpdateOptions } from './rest.entity.controller.definitions';
|
|
13
|
+
|
|
14
|
+
export interface DefaultDtos<Entity> {
|
|
15
|
+
BulkCreate: BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
16
|
+
Create: BaseCreateDto<Entity, CreateOptions<Entity>>;
|
|
17
|
+
Delete: BaseDeleteDto<DomainDeleteOptions>;
|
|
18
|
+
Find: BaseFindDto<DomainFindOptions>;
|
|
19
|
+
FindOne: BaseFindOneDto<DomainFindOneOptions>;
|
|
20
|
+
Update: BaseUpdateDto<Entity, UpdateOptions<Entity>>;
|
|
21
|
+
}
|
|
@@ -13,21 +13,20 @@ import {
|
|
|
13
13
|
ValidationPipe
|
|
14
14
|
} from '@nestjs/common';
|
|
15
15
|
|
|
16
|
-
import {
|
|
16
|
+
import { HTTPAccessControlInterceptor, HTTPErrorInterceptor } from '@node-c/api-http';
|
|
17
17
|
|
|
18
18
|
import {
|
|
19
|
+
DataDefaultData,
|
|
19
20
|
DomainBulkCreateResult,
|
|
20
21
|
DomainCreateResult,
|
|
21
22
|
DomainDeleteOptions,
|
|
22
23
|
DomainDeleteResult,
|
|
23
|
-
DomainEntityService,
|
|
24
24
|
DomainEntityServiceDefaultData,
|
|
25
25
|
DomainFindOneOptions,
|
|
26
26
|
DomainFindOneResult,
|
|
27
27
|
DomainFindOptions,
|
|
28
28
|
DomainFindResult,
|
|
29
|
-
DomainUpdateResult
|
|
30
|
-
PersistanceEntityService
|
|
29
|
+
DomainUpdateResult
|
|
31
30
|
} from '@node-c/core';
|
|
32
31
|
|
|
33
32
|
import {
|
|
@@ -40,33 +39,20 @@ import {
|
|
|
40
39
|
} from './dto';
|
|
41
40
|
import {
|
|
42
41
|
BulkCreateBody,
|
|
43
|
-
BulkCreateOptions,
|
|
44
42
|
CreateBody,
|
|
45
|
-
|
|
46
|
-
UpdateBody
|
|
47
|
-
UpdateOptions
|
|
43
|
+
DefaultDomainEntityService,
|
|
44
|
+
UpdateBody
|
|
48
45
|
} from './rest.entity.controller.definitions';
|
|
49
|
-
|
|
50
|
-
// These types and interfaces have to be here to avoid circular dependencies.
|
|
51
|
-
export type DefaultDomainEntityService<Entity> = DomainEntityService<
|
|
52
|
-
Entity,
|
|
53
|
-
PersistanceEntityService<Entity>,
|
|
54
|
-
DomainEntityServiceDefaultData<Entity>,
|
|
55
|
-
Record<string, PersistanceEntityService<Partial<Entity>>>
|
|
56
|
-
>;
|
|
57
|
-
|
|
58
|
-
export interface DefaultDtos<Entity> {
|
|
59
|
-
BulkCreate: BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
60
|
-
Create: BaseCreateDto<Entity, CreateOptions<Entity>>;
|
|
61
|
-
Delete: BaseDeleteDto<DomainDeleteOptions>;
|
|
62
|
-
Find: BaseFindDto<DomainFindOptions>;
|
|
63
|
-
FindOne: BaseFindOneDto<DomainFindOneOptions>;
|
|
64
|
-
Update: BaseUpdateDto<Entity, UpdateOptions<Entity>>;
|
|
65
|
-
}
|
|
46
|
+
import { DefaultDtos } from './rest.entity.controller.dto.definitions';
|
|
66
47
|
|
|
67
48
|
// TODO: a middleware for converting string booleans to booleans
|
|
68
|
-
@UseInterceptors(
|
|
69
|
-
export class RESTAPIEntityControlerWithoutDto<
|
|
49
|
+
@UseInterceptors(HTTPAccessControlInterceptor, HTTPErrorInterceptor)
|
|
50
|
+
export class RESTAPIEntityControlerWithoutDto<
|
|
51
|
+
Entity,
|
|
52
|
+
EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>,
|
|
53
|
+
DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>,
|
|
54
|
+
DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>
|
|
55
|
+
> {
|
|
70
56
|
inUseDefaultRoutes: { [handlerName: string]: boolean };
|
|
71
57
|
|
|
72
58
|
constructor(
|
|
@@ -146,7 +132,8 @@ export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extend
|
|
|
146
132
|
@Patch()
|
|
147
133
|
async update(@Body() body: UpdateBody<Entity>): Promise<DomainUpdateResult<Entity>> {
|
|
148
134
|
this.checkRoute('update');
|
|
149
|
-
|
|
135
|
+
const { data, ...options } = body;
|
|
136
|
+
return await this.domainEntityService.update(data, options);
|
|
150
137
|
}
|
|
151
138
|
}
|
|
152
139
|
|
|
@@ -157,10 +144,13 @@ export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extend
|
|
|
157
144
|
*/
|
|
158
145
|
export class RESTAPIEntityControler<
|
|
159
146
|
Entity,
|
|
160
|
-
EntityDomainService extends DefaultDomainEntityService<Entity>,
|
|
161
|
-
Dto extends DefaultDtos<Entity> = DefaultDtos<Entity
|
|
147
|
+
EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>,
|
|
148
|
+
Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>,
|
|
149
|
+
DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>,
|
|
150
|
+
DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>
|
|
162
151
|
> extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
|
|
163
152
|
protected defaultRouteMethods: string[];
|
|
153
|
+
protected settings: { validationWhitelist?: boolean } = { validationWhitelist: true };
|
|
164
154
|
protected validationPipe: ValidationPipe;
|
|
165
155
|
|
|
166
156
|
constructor(
|
|
@@ -178,7 +168,8 @@ export class RESTAPIEntityControler<
|
|
|
178
168
|
super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
179
169
|
// const finalDto: typeof dto = {};
|
|
180
170
|
// finalDto.bulkCreate = dto?.bulkCreate || BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
181
|
-
|
|
171
|
+
const { validationWhitelist } = this.settings;
|
|
172
|
+
this.validationPipe = new ValidationPipe({ whitelist: validationWhitelist });
|
|
182
173
|
}
|
|
183
174
|
|
|
184
175
|
@Post('bulk')
|
|
@@ -250,18 +241,19 @@ export class RESTAPIEntityControler<
|
|
|
250
241
|
|
|
251
242
|
static getDefaultDtos<EntityForDtos>(): {
|
|
252
243
|
bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
|
|
244
|
+
create: DefaultDtos<EntityForDtos>['Create'];
|
|
245
|
+
delete: DefaultDtos<EntityForDtos>['Delete'];
|
|
253
246
|
find: DefaultDtos<EntityForDtos>['Find'];
|
|
254
247
|
findOne: DefaultDtos<EntityForDtos>['FindOne'];
|
|
248
|
+
update: DefaultDtos<EntityForDtos>['Update'];
|
|
255
249
|
} {
|
|
256
250
|
return {
|
|
257
251
|
bulkCreate: BaseBulkCreateDto as unknown as DefaultDtos<EntityForDtos>['BulkCreate'],
|
|
252
|
+
create: BaseCreateDto as unknown as DefaultDtos<EntityForDtos>['Create'],
|
|
253
|
+
delete: BaseDeleteDto as unknown as DefaultDtos<EntityForDtos>['Delete'],
|
|
258
254
|
find: BaseFindDto as unknown as DefaultDtos<EntityForDtos>['Find'],
|
|
259
|
-
findOne:
|
|
260
|
-
|
|
261
|
-
// delete: BaseDeleteDto,
|
|
262
|
-
// find: BaseFindDto,
|
|
263
|
-
// findOne: BaseFindOneDto,
|
|
264
|
-
// update: BaseUpdateDto
|
|
255
|
+
findOne: BaseFindOneDto as unknown as DefaultDtos<EntityForDtos>['FindOne'],
|
|
256
|
+
update: BaseUpdateDto as unknown as DefaultDtos<EntityForDtos>['Update']
|
|
265
257
|
};
|
|
266
258
|
}
|
|
267
259
|
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.NumberItemDto = void 0;
|
|
13
|
-
const class_validator_1 = require("class-validator");
|
|
14
|
-
class NumberItemDto {
|
|
15
|
-
}
|
|
16
|
-
exports.NumberItemDto = NumberItemDto;
|
|
17
|
-
__decorate([
|
|
18
|
-
(0, class_validator_1.IsOptional)(),
|
|
19
|
-
(0, class_validator_1.IsBoolean)(),
|
|
20
|
-
__metadata("design:type", Boolean)
|
|
21
|
-
], NumberItemDto.prototype, "deleted", void 0);
|
|
22
|
-
__decorate([
|
|
23
|
-
(0, class_validator_1.IsDefined)(),
|
|
24
|
-
(0, class_validator_1.IsNumber)(),
|
|
25
|
-
__metadata("design:type", Number)
|
|
26
|
-
], NumberItemDto.prototype, "value", void 0);
|
|
27
|
-
//# sourceMappingURL=numberItem.dto.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"numberItem.dto.js","sourceRoot":"","sources":["../../../src/entityController/dto/numberItem.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAA6E;AAE7E,MAAa,aAAa;CAQzB;AARD,sCAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;8CACM;AAIlB;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,0BAAQ,GAAE;;4CACG"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { PersistanceNumberItem } from '@node-c/core';
|
|
2
|
-
import { IsBoolean, IsDefined, IsNumber, IsOptional } from 'class-validator';
|
|
3
|
-
|
|
4
|
-
export class NumberItemDto implements PersistanceNumberItem {
|
|
5
|
-
@IsOptional()
|
|
6
|
-
@IsBoolean()
|
|
7
|
-
deleted?: boolean;
|
|
8
|
-
|
|
9
|
-
@IsDefined()
|
|
10
|
-
@IsNumber()
|
|
11
|
-
value: number;
|
|
12
|
-
}
|