@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.
Files changed (51) hide show
  1. package/dist/entityController/dto/base.dto.d.ts +2 -2
  2. package/dist/entityController/dto/base.dto.js +3 -2
  3. package/dist/entityController/dto/base.dto.js.map +1 -1
  4. package/dist/entityController/dto/bulkCreate.dto.d.ts +1 -1
  5. package/dist/entityController/dto/bulkCreate.dto.js +2 -2
  6. package/dist/entityController/dto/bulkCreate.dto.js.map +1 -1
  7. package/dist/entityController/dto/create.dto.d.ts +1 -1
  8. package/dist/entityController/dto/create.dto.js +1 -1
  9. package/dist/entityController/dto/create.dto.js.map +1 -1
  10. package/dist/entityController/dto/delete.dto.d.ts +1 -0
  11. package/dist/entityController/dto/delete.dto.js +6 -0
  12. package/dist/entityController/dto/delete.dto.js.map +1 -1
  13. package/dist/entityController/dto/find.dto.d.ts +3 -2
  14. package/dist/entityController/dto/find.dto.js +12 -5
  15. package/dist/entityController/dto/find.dto.js.map +1 -1
  16. package/dist/entityController/dto/findOne.dto.d.ts +6 -4
  17. package/dist/entityController/dto/findOne.dto.js +6 -3
  18. package/dist/entityController/dto/findOne.dto.js.map +1 -1
  19. package/dist/entityController/dto/index.d.ts +0 -1
  20. package/dist/entityController/dto/index.js +0 -1
  21. package/dist/entityController/dto/index.js.map +1 -1
  22. package/dist/entityController/dto/update.dto.d.ts +2 -1
  23. package/dist/entityController/dto/update.dto.js +7 -2
  24. package/dist/entityController/dto/update.dto.js.map +1 -1
  25. package/dist/entityController/index.d.ts +1 -0
  26. package/dist/entityController/index.js +1 -0
  27. package/dist/entityController/index.js.map +1 -1
  28. package/dist/entityController/rest.entity.controller.d.ts +11 -14
  29. package/dist/entityController/rest.entity.controller.definitions.d.ts +2 -1
  30. package/dist/entityController/rest.entity.controller.dto.definitions.d.ts +11 -0
  31. package/dist/entityController/rest.entity.controller.dto.definitions.js +3 -0
  32. package/dist/entityController/rest.entity.controller.dto.definitions.js.map +1 -0
  33. package/dist/entityController/rest.entity.controller.js +10 -4
  34. package/dist/entityController/rest.entity.controller.js.map +1 -1
  35. package/package.json +7 -5
  36. package/src/entityController/dto/base.dto.ts +5 -4
  37. package/src/entityController/dto/bulkCreate.dto.ts +4 -4
  38. package/src/entityController/dto/create.dto.ts +2 -2
  39. package/src/entityController/dto/delete.dto.ts +6 -1
  40. package/src/entityController/dto/find.dto.ts +14 -8
  41. package/src/entityController/dto/findOne.dto.ts +17 -8
  42. package/src/entityController/dto/index.ts +0 -1
  43. package/src/entityController/dto/update.dto.ts +8 -4
  44. package/src/entityController/index.ts +1 -0
  45. package/src/entityController/rest.entity.controller.definitions.ts +17 -0
  46. package/src/entityController/rest.entity.controller.dto.definitions.ts +21 -0
  47. package/src/entityController/rest.entity.controller.ts +29 -37
  48. package/dist/entityController/dto/numberItem.dto.d.ts +0 -5
  49. package/dist/entityController/dto/numberItem.dto.js +0 -27
  50. package/dist/entityController/dto/numberItem.dto.js.map +0 -1
  51. package/src/entityController/dto/numberItem.dto.ts +0 -12
@@ -1,5 +1,5 @@
1
- import { DomainBaseAdditionalServiceOptionsOverrides, DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
1
+ import { DomainBaseAdditionalServiceOptionsOverrides, DomainDataServicesKey, GenericObject } from '@node-c/core';
2
2
  export declare class BaseDto<Options> {
3
3
  optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
4
- persistanceServices?: DomainPersistanceServicesKey[];
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.IsOptional)(),
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, "persistanceServices", void 0);
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,qDAAgE;AAKhE,MAAa,OAAO;CAQnB;AARD,0BAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0DAC+F;AAI1G;IAFC,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;oDACwC"}
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,qDAAwE;AAExE,yCAAqC;AAIrC,MAAa,aACX,SAAQ,kBAAgB;CAOzB;AARD,sCAQC;AADC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,0BAAQ,GAAE;IACV,IAAA,kCAAgB,GAAE;;2CACJ"}
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,0BAAQ,GAAE;IACV,IAAA,kCAAgB,GAAE;;uCACN"}
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,qDAAsD;AAEtD,yCAAqC;AAErC,MAAa,SAA+C,SAAQ,kBAAgB;CAInF;AAJD,8BAIC;AADC;IAFC,IAAA,2BAAS,GAAE;IACX,IAAA,0BAAQ,GAAE;;0CACqB"}
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, PersistanceOrderByDirection } from '@node-c/core';
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
- orderBy?: GenericObject<PersistanceOrderByDirection>;
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,qDAAiG;AAEjG,yCAAqC;AAErC,MAAa,OAA2C,SAAQ,kBAAgB;CA4B/E;AA5BD,0BA4BC;AAzBC;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wCACW;AAIxB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,iCAAe,GAAE;;wCACA;AAIlB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;wCACS;AAInB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;wCAC0C;AAIrD;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;;qCACH;AAId;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,gCAAc,GAAE;;wCACA;AAIjB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;uCACQ"}
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, PersistanceOrderByDirection } from '@node-c/core';
1
+ import { DataOrderByDirection, DomainFindOneOptions, GenericObject } from '@node-c/core';
2
2
  import { BaseDto } from './base.dto';
3
- export declare class FindOneDto<Options extends DomainFindOneOptions> extends BaseDto<Options> implements DomainFindOneOptions {
4
- filters: GenericObject<unknown>;
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<PersistanceOrderByDirection>;
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.IsOptional)(),
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,qDAAgE;AAEhE,yCAAqC;AAErC,MAAa,UAAiD,SAAQ,kBAAgB;CAerF;AAfD,gCAeC;AAbC;IADC,IAAA,0BAAQ,GAAE;;2CACqB;AAIhC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;2CACS;AAInB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CAC0C;AAIrD;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;0CACQ"}
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"}
@@ -4,6 +4,5 @@ export * from './create.dto';
4
4
  export * from './delete.dto';
5
5
  export * from './find.dto';
6
6
  export * from './findOne.dto';
7
- export * from './numberItem.dto';
8
7
  export * from './update.dto';
9
8
  export * from './uploadFile.dto';
@@ -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,mDAAiC;AACjC,+CAA6B;AAC7B,mDAAiC"}
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,qDAAwE;AAExE,yCAAqC;AAIrC,MAAa,SACX,SAAQ,kBAAgB;CAYzB;AAbD,8BAaC;AANC;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,0BAAQ,GAAE;IACV,IAAA,kCAAgB,GAAE;;uCACN;AAKb;IAHC,IAAA,2BAAS,GAAE;IACX,IAAA,0BAAQ,GAAE;IACV,IAAA,kCAAgB,GAAE;;0CACa"}
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,3 +1,4 @@
1
1
  export * from './dto';
2
2
  export * from './rest.entity.controller';
3
3
  export * from './rest.entity.controller.definitions';
4
+ export * from './rest.entity.controller.dto.definitions';
@@ -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, DomainEntityService, DomainEntityServiceDefaultData, DomainFindOneOptions, DomainFindOneResult, DomainFindOptions, DomainFindResult, DomainUpdateResult, PersistanceEntityService } from '@node-c/core';
3
- import { BulkCreateDto as BaseBulkCreateDto, CreateDto as BaseCreateDto, DeleteDto as BaseDeleteDto, FindDto as BaseFindDto, FindOneDto as BaseFindOneDto, UpdateDto as BaseUpdateDto } from './dto';
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
- }
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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=rest.entity.controller.dto.definitions.js.map
@@ -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
- return yield this.domainEntityService.update(body.data, { filters: body.filters });
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.HTTPAuthorizationInterceptor, api_http_1.HTTPErrorInterceptor),
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.validationPipe = new common_1.ValidationPipe({ whitelist: true });
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.FindDto
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":"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"}
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,23 +1,25 @@
1
1
  {
2
2
  "name": "@node-c/api-rest",
3
- "version": "1.0.0-alpha9",
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
- "publish-package": "rm -rf dist/* && rm -f *.tsbuildinfo && npm run build && npm publish --access public",
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": "^10.4.12",
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-alpha9",
21
- "@node-c/core": "^1.0.0-alpha9"
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, DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
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
- @IsOptional()
9
+ @IsNotEmptyObject()
10
10
  @IsObject()
11
+ @IsOptional()
11
12
  optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
12
13
 
13
14
  @IsArray()
14
15
  @IsOptional()
15
- persistanceServices?: DomainPersistanceServicesKey[];
16
+ dataServices?: DomainDataServicesKey[];
16
17
  }
@@ -1,4 +1,4 @@
1
- import { IsDefined, IsNotEmptyObject, IsObject } from 'class-validator';
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
- @IsObject()
13
- @IsNotEmptyObject()
14
- data: Entity[];
14
+ data: Partial<Entity>[];
15
15
  }
@@ -9,7 +9,7 @@ export class CreateDto<Entity, Options extends CreateOptions<Entity>>
9
9
  implements CreateBody<Entity>
10
10
  {
11
11
  @IsDefined()
12
- @IsObject()
13
12
  @IsNotEmptyObject()
14
- data: Entity;
13
+ @IsObject()
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, PersistanceOrderByDirection } from '@node-c/core';
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
- @IsObject()
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, PersistanceOrderByDirection } from '@node-c/core';
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
- export class FindOneDto<Options extends DomainFindOneOptions> extends BaseDto<Options> implements DomainFindOneOptions {
8
- @IsObject()
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
- @IsOptional()
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
  }
@@ -4,6 +4,5 @@ export * from './create.dto';
4
4
  export * from './delete.dto';
5
5
  export * from './find.dto';
6
6
  export * from './findOne.dto';
7
- export * from './numberItem.dto';
8
7
  export * from './update.dto';
9
8
  export * from './uploadFile.dto';
@@ -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
- data: Entity;
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,3 +1,4 @@
1
1
  export * from './dto';
2
2
  export * from './rest.entity.controller';
3
3
  export * from './rest.entity.controller.definitions';
4
+ export * from './rest.entity.controller.dto.definitions';
@@ -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 { HTTPAuthorizationInterceptor, HTTPErrorInterceptor } from '@node-c/api-http';
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
- CreateOptions,
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(HTTPAuthorizationInterceptor, HTTPErrorInterceptor)
69
- export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>> {
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
- return await this.domainEntityService.update(body.data, { filters: body.filters });
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
- this.validationPipe = new ValidationPipe({ whitelist: true });
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: BaseFindDto as unknown as DefaultDtos<EntityForDtos>['FindOne']
260
- // create: BaseCreateDto,
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,5 +0,0 @@
1
- import { PersistanceNumberItem } from '@node-c/core';
2
- export declare class NumberItemDto implements PersistanceNumberItem {
3
- deleted?: boolean;
4
- value: number;
5
- }
@@ -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
- }