@node-c/api-rest 1.0.0-alpha4 → 1.0.0-alpha41
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.js +1 -0
- package/dist/entityController/dto/delete.dto.js.map +1 -1
- package/dist/entityController/dto/find.dto.d.ts +2 -2
- package/dist/entityController/dto/find.dto.js +8 -6
- 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/rest.entity.controller.d.ts +10 -14
- package/dist/entityController/rest.entity.controller.definitions.d.ts +11 -1
- package/dist/entityController/rest.entity.controller.js +9 -3
- package/dist/entityController/rest.entity.controller.js.map +1 -1
- package/package.json +5 -4
- 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/base.dto.ts +0 -16
- package/src/entityController/dto/bulkCreate.dto.ts +0 -15
- package/src/entityController/dto/create.dto.ts +0 -15
- package/src/entityController/dto/delete.dto.ts +0 -11
- package/src/entityController/dto/find.dto.ts +0 -35
- package/src/entityController/dto/findOne.dto.ts +0 -22
- package/src/entityController/dto/index.ts +0 -9
- package/src/entityController/dto/numberItem.dto.ts +0 -12
- package/src/entityController/dto/update.dto.ts +0 -22
- package/src/entityController/dto/uploadFile.dto.ts +0 -12
- package/src/entityController/index.ts +0 -3
- package/src/entityController/rest.entity.controller.definitions.ts +0 -28
- package/src/entityController/rest.entity.controller.ts +0 -277
- package/src/index.ts +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
|
|
1
|
+
import { DomainBaseAdditionalServiceOptionsOverrides, DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
|
|
2
2
|
export declare class BaseDto<Options> {
|
|
3
|
-
optionsOverridesByService?: GenericObject<Partial<Options
|
|
3
|
+
optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
|
|
4
4
|
persistanceServices?: DomainPersistanceServicesKey[];
|
|
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([
|
|
24
|
+
(0, class_validator_1.IsArray)(),
|
|
23
25
|
(0, class_validator_1.IsOptional)(),
|
|
24
|
-
(0, class_validator_1.IsObject)(),
|
|
25
26
|
__metadata("design:type", Array)
|
|
26
27
|
], BaseDto.prototype, "persistanceServices", 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;;oDACwC"}
|
|
@@ -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"}
|
|
@@ -17,6 +17,7 @@ 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);
|
|
@@ -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,qDAAwE;AAExE,yCAAqC;AAErC,MAAa,SAA+C,SAAQ,kBAAgB;CAKnF;AALD,8BAKC;AADC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,kCAAgB,GAAE;IAClB,IAAA,0BAAQ,GAAE;;0CACqB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { DomainFindOptions, GenericObject } from '@node-c/core';
|
|
1
|
+
import { DomainFindOptions, GenericObject, PersistanceOrderByDirection } 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
|
-
orderBy?: GenericObject<
|
|
7
|
+
orderBy?: GenericObject<PersistanceOrderByDirection>;
|
|
8
8
|
page?: number;
|
|
9
9
|
perPage?: number;
|
|
10
10
|
select?: string[];
|
|
@@ -16,38 +16,40 @@ 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([
|
|
34
|
-
(0, class_validator_1.IsOptional)(),
|
|
35
35
|
(0, class_validator_1.IsObject)(),
|
|
36
|
+
(0, class_validator_1.IsOptional)(),
|
|
37
|
+
(0, class_validator_1.IsNotEmptyObject)(),
|
|
36
38
|
__metadata("design:type", Object)
|
|
37
39
|
], FindDto.prototype, "orderBy", void 0);
|
|
38
40
|
__decorate([
|
|
39
|
-
(0, class_validator_1.IsOptional)(),
|
|
40
41
|
(0, class_validator_1.IsNumberString)(),
|
|
42
|
+
(0, class_validator_1.IsOptional)(),
|
|
41
43
|
__metadata("design:type", Number)
|
|
42
44
|
], FindDto.prototype, "page", void 0);
|
|
43
45
|
__decorate([
|
|
44
|
-
(0, class_validator_1.IsOptional)(),
|
|
45
46
|
(0, class_validator_1.IsNumberString)(),
|
|
47
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
48
|
__metadata("design:type", Number)
|
|
47
49
|
], FindDto.prototype, "perPage", void 0);
|
|
48
50
|
__decorate([
|
|
49
|
-
(0, class_validator_1.IsOptional)(),
|
|
50
51
|
(0, class_validator_1.IsArray)(),
|
|
52
|
+
(0, class_validator_1.IsOptional)(),
|
|
51
53
|
__metadata("design:type", Array)
|
|
52
54
|
], FindDto.prototype, "select", void 0);
|
|
53
55
|
//# 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;CA8B/E;AA9BD,0BA8BC;AA1BC;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;AAKnB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,kCAAgB,GAAE;;wCACkC;AAIrD;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 } from '@node-c/core';
|
|
1
|
+
import { DomainFindOneOptions, GenericObject, PersistanceOrderByDirection } 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<PersistanceOrderByDirection>;
|
|
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;;2CACwC;AAIrD;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"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { ValidationPipe } from '@nestjs/common';
|
|
2
|
-
import { DomainBulkCreateResult, DomainCreateResult, DomainDeleteOptions, DomainDeleteResult,
|
|
3
|
-
import {
|
|
4
|
-
import { BulkCreateBody, BulkCreateOptions, CreateBody, CreateOptions, UpdateBody, UpdateOptions } from './rest.entity.controller.definitions';
|
|
5
|
-
export type DefaultDomainEntityService<Entity> = DomainEntityService<Entity, PersistanceEntityService<Entity>, DomainEntityServiceDefaultData<Entity>, Record<string, PersistanceEntityService<Partial<Entity>>>>;
|
|
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
|
-
}
|
|
2
|
+
import { DomainBulkCreateResult, DomainCreateResult, DomainDeleteOptions, DomainDeleteResult, DomainFindOneOptions, DomainFindOneResult, DomainFindOptions, DomainFindResult, DomainUpdateResult } from '@node-c/core';
|
|
3
|
+
import { BulkCreateBody, CreateBody, DefaultDomainEntityService, DefaultDtos, UpdateBody } from './rest.entity.controller.definitions';
|
|
14
4
|
export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>> {
|
|
15
5
|
protected domainEntityService: EntityDomainService;
|
|
16
6
|
protected defaultRouteMethods?: string[] | undefined;
|
|
@@ -21,7 +11,7 @@ export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainServic
|
|
|
21
11
|
protected checkRoute(handlerName: string): void;
|
|
22
12
|
bulkCreate(_body: BulkCreateBody<Entity>, ..._args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
|
|
23
13
|
create(_body: CreateBody<Entity>, ..._args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
|
|
24
|
-
delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult | void>;
|
|
14
|
+
delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
|
|
25
15
|
find(_query: DomainFindOptions, ..._args: unknown[]): Promise<DomainFindResult<Entity> | void>;
|
|
26
16
|
findOne(_id: number | string, _query: DomainFindOneOptions, ..._args: unknown[]): Promise<DomainFindOneResult<Entity> | void>;
|
|
27
17
|
refreshDefaultRoutes(newDefaultRoutes?: string[]): void;
|
|
@@ -38,6 +28,9 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
|
|
|
38
28
|
update?: Dto['Update'];
|
|
39
29
|
};
|
|
40
30
|
protected defaultRouteMethods: string[];
|
|
31
|
+
protected settings: {
|
|
32
|
+
validationWhitelist?: boolean;
|
|
33
|
+
};
|
|
41
34
|
protected validationPipe: ValidationPipe;
|
|
42
35
|
constructor(domainEntityService: EntityDomainService, dto: {
|
|
43
36
|
bulkCreate?: Dto['BulkCreate'];
|
|
@@ -49,13 +42,16 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
|
|
|
49
42
|
}, defaultRouteMethods?: string[]);
|
|
50
43
|
bulkCreate(body: Dto['BulkCreate'], ...args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
|
|
51
44
|
create(body: Dto['Create'], ...args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
|
|
52
|
-
delete(body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult | void>;
|
|
45
|
+
delete(body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
|
|
53
46
|
find(query: Dto['Find'], ...args: unknown[]): Promise<DomainFindResult<Entity> | void>;
|
|
54
47
|
findOne(id: number | string, query: Dto['FindOne'], ...args: unknown[]): Promise<DomainFindOneResult<Entity> | void>;
|
|
55
48
|
static getDefaultDtos<EntityForDtos>(): {
|
|
56
49
|
bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
|
|
50
|
+
create: DefaultDtos<EntityForDtos>['Create'];
|
|
51
|
+
delete: DefaultDtos<EntityForDtos>['Delete'];
|
|
57
52
|
find: DefaultDtos<EntityForDtos>['Find'];
|
|
58
53
|
findOne: DefaultDtos<EntityForDtos>['FindOne'];
|
|
54
|
+
update: DefaultDtos<EntityForDtos>['Update'];
|
|
59
55
|
};
|
|
60
56
|
update(body: Dto['Update'], ...args: unknown[]): Promise<DomainUpdateResult<Entity> | void>;
|
|
61
57
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { DomainBulkCreateData, DomainBulkCreateOptions, DomainCreateData, DomainCreateOptions, DomainUpdateData, DomainUpdateOptions, GenericObject } from '@node-c/core';
|
|
1
|
+
import { DomainBulkCreateData, DomainBulkCreateOptions, DomainCreateData, DomainCreateOptions, DomainDeleteOptions, DomainEntityService, DomainEntityServiceDefaultData, DomainFindOneOptions, DomainFindOptions, DomainUpdateData, DomainUpdateOptions, GenericObject, PersistanceEntityService } 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';
|
|
2
3
|
export interface BulkCreateBody<Entity> extends DomainBulkCreateOptions {
|
|
3
4
|
data: DomainBulkCreateData<Entity>;
|
|
4
5
|
}
|
|
@@ -7,6 +8,15 @@ export interface CreateBody<Entity> extends DomainCreateOptions {
|
|
|
7
8
|
data: DomainCreateData<Entity>;
|
|
8
9
|
}
|
|
9
10
|
export type CreateOptions<Entity> = Omit<CreateBody<Entity>, 'data'>;
|
|
11
|
+
export type DefaultDomainEntityService<Entity> = DomainEntityService<Entity, PersistanceEntityService<Entity>, DomainEntityServiceDefaultData<Entity>, Record<string, PersistanceEntityService<Partial<Entity>>>>;
|
|
12
|
+
export interface DefaultDtos<Entity> {
|
|
13
|
+
BulkCreate: BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
14
|
+
Create: BaseCreateDto<Entity, CreateOptions<Entity>>;
|
|
15
|
+
Delete: BaseDeleteDto<DomainDeleteOptions>;
|
|
16
|
+
Find: BaseFindDto<DomainFindOptions>;
|
|
17
|
+
FindOne: BaseFindOneDto<DomainFindOneOptions>;
|
|
18
|
+
Update: BaseUpdateDto<Entity, UpdateOptions<Entity>>;
|
|
19
|
+
}
|
|
10
20
|
export interface UpdateBody<Entity> extends DomainUpdateOptions {
|
|
11
21
|
data: DomainUpdateData<Entity>;
|
|
12
22
|
filters: GenericObject<unknown>;
|
|
@@ -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
|
};
|
|
@@ -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":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-c/api-rest",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-alpha41",
|
|
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
|
-
"publish-package": "
|
|
11
|
+
"publish-package": "npm run build:clean && npm publish --access public",
|
|
11
12
|
"test": "vitest --config src/vitest.config.ts",
|
|
12
13
|
"test:coverage": "vitest --config src/vitest.config.ts --coverage"
|
|
13
14
|
},
|
|
@@ -17,7 +18,7 @@
|
|
|
17
18
|
"class-validator": "^0.14.1"
|
|
18
19
|
},
|
|
19
20
|
"peerDependencies": {
|
|
20
|
-
"@node-c/api-http": "^1.0.0-
|
|
21
|
-
"@node-c/core": "^1.0.0-
|
|
21
|
+
"@node-c/api-http": "^1.0.0-alpha41",
|
|
22
|
+
"@node-c/core": "^1.0.0-alpha41"
|
|
22
23
|
}
|
|
23
24
|
}
|
|
@@ -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,16 +0,0 @@
|
|
|
1
|
-
import { DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
|
|
2
|
-
|
|
3
|
-
import { IsObject, IsOptional } from 'class-validator';
|
|
4
|
-
|
|
5
|
-
/*
|
|
6
|
-
* We need the Options type here, so we can easily extend overriden classes' BaseDto
|
|
7
|
-
*/
|
|
8
|
-
export class BaseDto<Options> {
|
|
9
|
-
@IsOptional()
|
|
10
|
-
@IsObject()
|
|
11
|
-
optionsOverridesByService?: GenericObject<Partial<Options>>;
|
|
12
|
-
|
|
13
|
-
@IsOptional()
|
|
14
|
-
@IsObject()
|
|
15
|
-
persistanceServices?: DomainPersistanceServicesKey[];
|
|
16
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { IsDefined, IsNotEmptyObject, IsObject } from 'class-validator';
|
|
2
|
-
|
|
3
|
-
import { BaseDto } from './base.dto';
|
|
4
|
-
|
|
5
|
-
import { BulkCreateBody, BulkCreateOptions } from '../rest.entity.controller.definitions';
|
|
6
|
-
|
|
7
|
-
export class BulkCreateDto<Entity, Options extends BulkCreateOptions<Entity>>
|
|
8
|
-
extends BaseDto<Options>
|
|
9
|
-
implements BulkCreateBody<Entity>
|
|
10
|
-
{
|
|
11
|
-
@IsDefined()
|
|
12
|
-
@IsObject()
|
|
13
|
-
@IsNotEmptyObject()
|
|
14
|
-
data: Entity[];
|
|
15
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { IsDefined, IsNotEmptyObject, IsObject } from 'class-validator';
|
|
2
|
-
|
|
3
|
-
import { BaseDto } from './base.dto';
|
|
4
|
-
|
|
5
|
-
import { CreateBody, CreateOptions } from '../rest.entity.controller.definitions';
|
|
6
|
-
|
|
7
|
-
export class CreateDto<Entity, Options extends CreateOptions<Entity>>
|
|
8
|
-
extends BaseDto<Options>
|
|
9
|
-
implements CreateBody<Entity>
|
|
10
|
-
{
|
|
11
|
-
@IsDefined()
|
|
12
|
-
@IsObject()
|
|
13
|
-
@IsNotEmptyObject()
|
|
14
|
-
data: Entity;
|
|
15
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DomainDeleteOptions, GenericObject } from '@node-c/core';
|
|
2
|
-
|
|
3
|
-
import { IsDefined, IsObject } from 'class-validator';
|
|
4
|
-
|
|
5
|
-
import { BaseDto } from './base.dto';
|
|
6
|
-
|
|
7
|
-
export class DeleteDto<Options extends DomainDeleteOptions> extends BaseDto<Options> implements DomainDeleteOptions {
|
|
8
|
-
@IsDefined()
|
|
9
|
-
@IsObject()
|
|
10
|
-
filters: GenericObject<unknown>;
|
|
11
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { DomainFindOptions, GenericObject } from '@node-c/core';
|
|
2
|
-
|
|
3
|
-
import { IsArray, IsBooleanString, IsNumberString, IsObject, IsOptional } from 'class-validator';
|
|
4
|
-
|
|
5
|
-
import { BaseDto } from './base.dto';
|
|
6
|
-
|
|
7
|
-
export class FindDto<Options extends DomainFindOptions> extends BaseDto<Options> implements DomainFindOptions {
|
|
8
|
-
@IsObject()
|
|
9
|
-
@IsOptional()
|
|
10
|
-
filters?: GenericObject;
|
|
11
|
-
|
|
12
|
-
@IsOptional()
|
|
13
|
-
@IsBooleanString()
|
|
14
|
-
findAll?: boolean;
|
|
15
|
-
|
|
16
|
-
@IsOptional()
|
|
17
|
-
@IsArray()
|
|
18
|
-
include?: string[];
|
|
19
|
-
|
|
20
|
-
@IsOptional()
|
|
21
|
-
@IsObject()
|
|
22
|
-
orderBy?: GenericObject<string>;
|
|
23
|
-
|
|
24
|
-
@IsOptional()
|
|
25
|
-
@IsNumberString()
|
|
26
|
-
page?: number;
|
|
27
|
-
|
|
28
|
-
@IsOptional()
|
|
29
|
-
@IsNumberString()
|
|
30
|
-
perPage?: number;
|
|
31
|
-
|
|
32
|
-
@IsOptional()
|
|
33
|
-
@IsArray()
|
|
34
|
-
select?: string[];
|
|
35
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { DomainFindOneOptions, GenericObject } from '@node-c/core';
|
|
2
|
-
|
|
3
|
-
import { IsArray, IsObject, IsOptional } from 'class-validator';
|
|
4
|
-
|
|
5
|
-
import { BaseDto } from './base.dto';
|
|
6
|
-
|
|
7
|
-
export class FindOneDto<Options extends DomainFindOneOptions> extends BaseDto<Options> implements DomainFindOneOptions {
|
|
8
|
-
@IsObject()
|
|
9
|
-
filters: GenericObject<unknown>;
|
|
10
|
-
|
|
11
|
-
@IsOptional()
|
|
12
|
-
@IsArray()
|
|
13
|
-
include?: string[];
|
|
14
|
-
|
|
15
|
-
@IsOptional()
|
|
16
|
-
@IsObject()
|
|
17
|
-
orderBy?: GenericObject<string>;
|
|
18
|
-
|
|
19
|
-
@IsOptional()
|
|
20
|
-
@IsArray()
|
|
21
|
-
select?: string[];
|
|
22
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './base.dto';
|
|
2
|
-
export * from './bulkCreate.dto';
|
|
3
|
-
export * from './create.dto';
|
|
4
|
-
export * from './delete.dto';
|
|
5
|
-
export * from './find.dto';
|
|
6
|
-
export * from './findOne.dto';
|
|
7
|
-
export * from './numberItem.dto';
|
|
8
|
-
export * from './update.dto';
|
|
9
|
-
export * from './uploadFile.dto';
|
|
@@ -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
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { GenericObject } from '@node-c/core';
|
|
2
|
-
|
|
3
|
-
import { IsDefined, IsNotEmptyObject, IsObject } from 'class-validator';
|
|
4
|
-
|
|
5
|
-
import { BaseDto } from './base.dto';
|
|
6
|
-
|
|
7
|
-
import { UpdateBody, UpdateOptions } from '../rest.entity.controller.definitions';
|
|
8
|
-
|
|
9
|
-
export class UpdateDto<Entity, Options extends UpdateOptions<Entity>>
|
|
10
|
-
extends BaseDto<Options>
|
|
11
|
-
implements UpdateBody<Entity>
|
|
12
|
-
{
|
|
13
|
-
@IsDefined()
|
|
14
|
-
@IsObject()
|
|
15
|
-
@IsNotEmptyObject()
|
|
16
|
-
data: Entity;
|
|
17
|
-
|
|
18
|
-
@IsDefined()
|
|
19
|
-
@IsObject()
|
|
20
|
-
@IsNotEmptyObject()
|
|
21
|
-
filters: GenericObject<unknown>;
|
|
22
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DomainBulkCreateData,
|
|
3
|
-
DomainBulkCreateOptions,
|
|
4
|
-
DomainCreateData,
|
|
5
|
-
DomainCreateOptions,
|
|
6
|
-
DomainUpdateData,
|
|
7
|
-
DomainUpdateOptions,
|
|
8
|
-
GenericObject
|
|
9
|
-
} from '@node-c/core';
|
|
10
|
-
|
|
11
|
-
export interface BulkCreateBody<Entity> extends DomainBulkCreateOptions {
|
|
12
|
-
data: DomainBulkCreateData<Entity>;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export type BulkCreateOptions<Entity> = Omit<BulkCreateBody<Entity>, 'data'>;
|
|
16
|
-
|
|
17
|
-
export interface CreateBody<Entity> extends DomainCreateOptions {
|
|
18
|
-
data: DomainCreateData<Entity>;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export type CreateOptions<Entity> = Omit<CreateBody<Entity>, 'data'>;
|
|
22
|
-
|
|
23
|
-
export interface UpdateBody<Entity> extends DomainUpdateOptions {
|
|
24
|
-
data: DomainUpdateData<Entity>;
|
|
25
|
-
filters: GenericObject<unknown>;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type UpdateOptions<Entity> = Omit<UpdateBody<Entity>, 'data'>;
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Body,
|
|
3
|
-
Delete,
|
|
4
|
-
Get,
|
|
5
|
-
HttpException,
|
|
6
|
-
HttpStatus,
|
|
7
|
-
Param,
|
|
8
|
-
Patch,
|
|
9
|
-
Post,
|
|
10
|
-
Query,
|
|
11
|
-
Type,
|
|
12
|
-
UseInterceptors,
|
|
13
|
-
ValidationPipe
|
|
14
|
-
} from '@nestjs/common';
|
|
15
|
-
|
|
16
|
-
import { HTTPAuthorizationInterceptor, HTTPErrorInterceptor } from '@node-c/api-http';
|
|
17
|
-
|
|
18
|
-
import {
|
|
19
|
-
DomainBulkCreateResult,
|
|
20
|
-
DomainCreateResult,
|
|
21
|
-
DomainDeleteOptions,
|
|
22
|
-
DomainDeleteResult,
|
|
23
|
-
DomainEntityService,
|
|
24
|
-
DomainEntityServiceDefaultData,
|
|
25
|
-
DomainFindOneOptions,
|
|
26
|
-
DomainFindOneResult,
|
|
27
|
-
DomainFindOptions,
|
|
28
|
-
DomainFindResult,
|
|
29
|
-
DomainUpdateResult,
|
|
30
|
-
PersistanceEntityService
|
|
31
|
-
} from '@node-c/core';
|
|
32
|
-
|
|
33
|
-
import {
|
|
34
|
-
BulkCreateDto as BaseBulkCreateDto,
|
|
35
|
-
CreateDto as BaseCreateDto,
|
|
36
|
-
DeleteDto as BaseDeleteDto,
|
|
37
|
-
FindDto as BaseFindDto,
|
|
38
|
-
FindOneDto as BaseFindOneDto,
|
|
39
|
-
UpdateDto as BaseUpdateDto
|
|
40
|
-
} from './dto';
|
|
41
|
-
import {
|
|
42
|
-
BulkCreateBody,
|
|
43
|
-
BulkCreateOptions,
|
|
44
|
-
CreateBody,
|
|
45
|
-
CreateOptions,
|
|
46
|
-
UpdateBody,
|
|
47
|
-
UpdateOptions
|
|
48
|
-
} 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
|
-
}
|
|
66
|
-
|
|
67
|
-
@UseInterceptors(HTTPAuthorizationInterceptor, HTTPErrorInterceptor)
|
|
68
|
-
export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>> {
|
|
69
|
-
inUseDefaultRoutes: { [handlerName: string]: boolean };
|
|
70
|
-
|
|
71
|
-
constructor(
|
|
72
|
-
// eslint-disable-next-line no-unused-vars
|
|
73
|
-
protected domainEntityService: EntityDomainService,
|
|
74
|
-
// eslint-disable-next-line no-unused-vars
|
|
75
|
-
protected defaultRouteMethods?: string[]
|
|
76
|
-
) {
|
|
77
|
-
this.refreshDefaultRoutes();
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
protected checkRoute(handlerName: string): void {
|
|
81
|
-
if (!this.inUseDefaultRoutes || !this.inUseDefaultRoutes[handlerName]) {
|
|
82
|
-
throw new HttpException('Not found', HttpStatus.NOT_FOUND);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
public bulkCreate(_body: BulkCreateBody<Entity>, ..._args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
|
|
87
|
-
@Post('bulk')
|
|
88
|
-
async bulkCreate(@Body() body: BulkCreateBody<Entity>): Promise<DomainBulkCreateResult<Entity>> {
|
|
89
|
-
this.checkRoute('bulkCreate');
|
|
90
|
-
const { data, ...options } = body;
|
|
91
|
-
return await this.domainEntityService.bulkCreate(data, options);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
public create(_body: CreateBody<Entity>, ..._args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
|
|
95
|
-
@Post()
|
|
96
|
-
async create(@Body() body: CreateBody<Entity>): Promise<DomainCreateResult<Entity>> {
|
|
97
|
-
this.checkRoute('create');
|
|
98
|
-
const { data, ...options } = body;
|
|
99
|
-
return await this.domainEntityService.create(data, options);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
public delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult | void>;
|
|
103
|
-
@Delete()
|
|
104
|
-
async delete(@Body() body: DomainDeleteOptions): Promise<DomainDeleteResult> {
|
|
105
|
-
this.checkRoute('delete');
|
|
106
|
-
return await this.domainEntityService.delete(body);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
public find(_query: DomainFindOptions, ..._args: unknown[]): Promise<DomainFindResult<Entity> | void>;
|
|
110
|
-
@Get()
|
|
111
|
-
async find(@Query() query: DomainFindOptions): Promise<DomainFindResult<Entity> | void> {
|
|
112
|
-
this.checkRoute('find');
|
|
113
|
-
return await this.domainEntityService.find(query);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
public findOne(
|
|
117
|
-
_id: number | string,
|
|
118
|
-
_query: DomainFindOneOptions,
|
|
119
|
-
..._args: unknown[]
|
|
120
|
-
): Promise<DomainFindOneResult<Entity> | void>;
|
|
121
|
-
@Get('/item/:id')
|
|
122
|
-
async findOne(
|
|
123
|
-
@Param() id: number | string,
|
|
124
|
-
@Query() query: DomainFindOneOptions
|
|
125
|
-
): Promise<DomainFindOneResult<Entity> | void> {
|
|
126
|
-
this.checkRoute('findOne');
|
|
127
|
-
let filters = query.filters;
|
|
128
|
-
if (!filters) {
|
|
129
|
-
filters = {};
|
|
130
|
-
query.filters = filters;
|
|
131
|
-
}
|
|
132
|
-
filters.id = id;
|
|
133
|
-
return await this.domainEntityService.findOne(query);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
refreshDefaultRoutes(newDefaultRoutes?: string[]): void {
|
|
137
|
-
const defaultRouteMethods = newDefaultRoutes || this.defaultRouteMethods;
|
|
138
|
-
this.inUseDefaultRoutes = {};
|
|
139
|
-
if (defaultRouteMethods instanceof Array) {
|
|
140
|
-
defaultRouteMethods.forEach(item => (this.inUseDefaultRoutes[item] = true));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
public update(_body: UpdateBody<Entity>, ..._args: unknown[]): Promise<DomainUpdateResult<Entity> | void>;
|
|
145
|
-
@Patch()
|
|
146
|
-
async update(@Body() body: UpdateBody<Entity>): Promise<DomainUpdateResult<Entity>> {
|
|
147
|
-
this.checkRoute('update');
|
|
148
|
-
return await this.domainEntityService.update(body.data, { filters: body.filters });
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/*
|
|
153
|
-
* For reference on why the dto validation was done in this way - it's a limitation of Typescript itself:
|
|
154
|
-
* the compiler doesn't emit generic type metadata, making it impossible to achieve a DRY OOP base class with schema validation.
|
|
155
|
-
* At this point, it's a decade-old issue - see https://www.typescriptneedstypes.com/ for more details.
|
|
156
|
-
*/
|
|
157
|
-
export class RESTAPIEntityControler<
|
|
158
|
-
Entity,
|
|
159
|
-
EntityDomainService extends DefaultDomainEntityService<Entity>,
|
|
160
|
-
Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>
|
|
161
|
-
> extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
|
|
162
|
-
protected defaultRouteMethods: string[];
|
|
163
|
-
protected validationPipe: ValidationPipe;
|
|
164
|
-
|
|
165
|
-
constructor(
|
|
166
|
-
protected domainEntityService: EntityDomainService,
|
|
167
|
-
protected dto: {
|
|
168
|
-
bulkCreate?: Dto['BulkCreate'];
|
|
169
|
-
create?: Dto['Create'];
|
|
170
|
-
delete?: Dto['Delete'];
|
|
171
|
-
find?: Dto['Find'];
|
|
172
|
-
findOne?: Dto['FindOne'];
|
|
173
|
-
update?: Dto['Update'];
|
|
174
|
-
},
|
|
175
|
-
defaultRouteMethods?: string[]
|
|
176
|
-
) {
|
|
177
|
-
super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
|
|
178
|
-
// const finalDto: typeof dto = {};
|
|
179
|
-
// finalDto.bulkCreate = dto?.bulkCreate || BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
|
|
180
|
-
this.validationPipe = new ValidationPipe({ whitelist: true });
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
@Post('bulk')
|
|
184
|
-
async bulkCreate(
|
|
185
|
-
@Body() body: Dto['BulkCreate'],
|
|
186
|
-
...args: unknown[]
|
|
187
|
-
): Promise<DomainBulkCreateResult<Entity> | void> {
|
|
188
|
-
return await super.bulkCreate.apply(this, [
|
|
189
|
-
await this.validationPipe.transform(body, {
|
|
190
|
-
metatype: this.dto.bulkCreate as unknown as Type,
|
|
191
|
-
type: 'body'
|
|
192
|
-
}),
|
|
193
|
-
...(args || [])
|
|
194
|
-
]);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
@Post()
|
|
198
|
-
async create(
|
|
199
|
-
@Body()
|
|
200
|
-
body: Dto['Create'],
|
|
201
|
-
...args: unknown[]
|
|
202
|
-
): Promise<DomainCreateResult<Entity> | void> {
|
|
203
|
-
return await super.create.apply(this, [
|
|
204
|
-
await this.validationPipe.transform(body, {
|
|
205
|
-
metatype: this.dto.create as unknown as Type,
|
|
206
|
-
type: 'body'
|
|
207
|
-
}),
|
|
208
|
-
...(args || [])
|
|
209
|
-
]);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
@Delete()
|
|
213
|
-
async delete(@Body() body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult | void> {
|
|
214
|
-
return await super.delete.apply(this, [
|
|
215
|
-
await this.validationPipe.transform(body, {
|
|
216
|
-
metatype: this.dto.delete as unknown as Type,
|
|
217
|
-
type: 'body'
|
|
218
|
-
}),
|
|
219
|
-
...(args || [])
|
|
220
|
-
]);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
@Get()
|
|
224
|
-
async find(@Query() query: Dto['Find'], ...args: unknown[]): Promise<DomainFindResult<Entity> | void> {
|
|
225
|
-
return await super.find.apply(this, [
|
|
226
|
-
await this.validationPipe.transform(query, {
|
|
227
|
-
metatype: this.dto.find as unknown as Type,
|
|
228
|
-
type: 'query'
|
|
229
|
-
}),
|
|
230
|
-
...(args || [])
|
|
231
|
-
]);
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
@Get('/item/:id')
|
|
235
|
-
async findOne(
|
|
236
|
-
@Param() id: number | string,
|
|
237
|
-
@Query() query: Dto['FindOne'],
|
|
238
|
-
...args: unknown[]
|
|
239
|
-
): Promise<DomainFindOneResult<Entity> | void> {
|
|
240
|
-
return await super.findOne.apply(this, [
|
|
241
|
-
id,
|
|
242
|
-
await this.validationPipe.transform(query, {
|
|
243
|
-
metatype: this.dto.findOne as unknown as Type,
|
|
244
|
-
type: 'query'
|
|
245
|
-
}),
|
|
246
|
-
...(args || [])
|
|
247
|
-
]);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
static getDefaultDtos<EntityForDtos>(): {
|
|
251
|
-
bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
|
|
252
|
-
find: DefaultDtos<EntityForDtos>['Find'];
|
|
253
|
-
findOne: DefaultDtos<EntityForDtos>['FindOne'];
|
|
254
|
-
} {
|
|
255
|
-
return {
|
|
256
|
-
bulkCreate: BaseBulkCreateDto as unknown as DefaultDtos<EntityForDtos>['BulkCreate'],
|
|
257
|
-
find: BaseFindDto as unknown as DefaultDtos<EntityForDtos>['Find'],
|
|
258
|
-
findOne: BaseFindDto as unknown as DefaultDtos<EntityForDtos>['FindOne']
|
|
259
|
-
// create: BaseCreateDto,
|
|
260
|
-
// delete: BaseDeleteDto,
|
|
261
|
-
// find: BaseFindDto,
|
|
262
|
-
// findOne: BaseFindOneDto,
|
|
263
|
-
// update: BaseUpdateDto
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
@Patch()
|
|
268
|
-
async update(@Body() body: Dto['Update'], ...args: unknown[]): Promise<DomainUpdateResult<Entity> | void> {
|
|
269
|
-
return await super.update.apply(this, [
|
|
270
|
-
await this.validationPipe.transform(body, {
|
|
271
|
-
metatype: this.dto.update as unknown as Type,
|
|
272
|
-
type: 'body'
|
|
273
|
-
}),
|
|
274
|
-
...(args || [])
|
|
275
|
-
]);
|
|
276
|
-
}
|
|
277
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './entityController';
|