@node-c/api-rest 1.0.0-alpha8 → 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 +3 -3
  2. package/dist/entityController/dto/base.dto.js +4 -3
  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 +13 -16
  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 +7 -6
  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 +32 -39
  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 { DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
1
+ import { DomainBaseAdditionalServiceOptionsOverrides, DomainDataServicesKey, GenericObject } from '@node-c/core';
2
2
  export declare class BaseDto<Options> {
3
- optionsOverridesByService?: GenericObject<Partial<Options>>;
4
- persistanceServices?: DomainPersistanceServicesKey[];
3
+ optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
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([
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
- ], 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,qDAAuD;AAKvD,MAAa,OAAO;CAQnB;AARD,0BAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0DACiD;AAI5D;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;oDAC0C"}
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: {
@@ -21,13 +12,13 @@ export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainServic
21
12
  protected checkRoute(handlerName: string): void;
22
13
  bulkCreate(_body: BulkCreateBody<Entity>, ..._args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
23
14
  create(_body: CreateBody<Entity>, ..._args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
24
- delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult | void>;
15
+ delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
25
16
  find(_query: DomainFindOptions, ..._args: unknown[]): Promise<DomainFindResult<Entity> | void>;
26
17
  findOne(_id: number | string, _query: DomainFindOneOptions, ..._args: unknown[]): Promise<DomainFindOneResult<Entity> | void>;
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'];
@@ -49,13 +43,16 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
49
43
  }, defaultRouteMethods?: string[]);
50
44
  bulkCreate(body: Dto['BulkCreate'], ...args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
51
45
  create(body: Dto['Create'], ...args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
52
- delete(body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult | void>;
46
+ delete(body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
53
47
  find(query: Dto['Find'], ...args: unknown[]): Promise<DomainFindResult<Entity> | void>;
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-alpha8",
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-alpha8",
21
- "@node-c/core": "^1.0.0-alpha8"
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 { DomainPersistanceServicesKey, GenericObject } from '@node-c/core';
1
+ import { DomainBaseAdditionalServiceOptionsOverrides, DomainDataServicesKey, GenericObject } from '@node-c/core';
2
2
 
3
- import { 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
- optionsOverridesByService?: GenericObject<Partial<Options>>;
11
+ @IsOptional()
12
+ optionsOverridesByService?: GenericObject<Partial<Options>> & DomainBaseAdditionalServiceOptionsOverrides;
12
13
 
14
+ @IsArray()
13
15
  @IsOptional()
14
- @IsObject()
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,32 +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';
46
+ import { DefaultDtos } from './rest.entity.controller.dto.definitions';
49
47
 
50
- // These types and interfaces have to be here to avoid circular dependencies.
51
- export type DefaultDomainEntityService<Entity> = DomainEntityService<
48
+ // TODO: a middleware for converting string booleans to booleans
49
+ @UseInterceptors(HTTPAccessControlInterceptor, HTTPErrorInterceptor)
50
+ export class RESTAPIEntityControlerWithoutDto<
52
51
  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>> {
52
+ EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>,
53
+ DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>,
54
+ DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>
55
+ > {
69
56
  inUseDefaultRoutes: { [handlerName: string]: boolean };
70
57
 
71
58
  constructor(
@@ -99,9 +86,9 @@ export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extend
99
86
  return await this.domainEntityService.create(data, options);
100
87
  }
101
88
 
102
- public delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult | void>;
89
+ public delete(_body: DomainDeleteOptions, ..._args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
103
90
  @Delete()
104
- async delete(@Body() body: DomainDeleteOptions): Promise<DomainDeleteResult> {
91
+ async delete(@Body() body: DomainDeleteOptions): Promise<DomainDeleteResult<Entity>> {
105
92
  this.checkRoute('delete');
106
93
  return await this.domainEntityService.delete(body);
107
94
  }
@@ -145,7 +132,8 @@ export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extend
145
132
  @Patch()
146
133
  async update(@Body() body: UpdateBody<Entity>): Promise<DomainUpdateResult<Entity>> {
147
134
  this.checkRoute('update');
148
- return await this.domainEntityService.update(body.data, { filters: body.filters });
135
+ const { data, ...options } = body;
136
+ return await this.domainEntityService.update(data, options);
149
137
  }
150
138
  }
151
139
 
@@ -156,10 +144,13 @@ export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extend
156
144
  */
157
145
  export class RESTAPIEntityControler<
158
146
  Entity,
159
- EntityDomainService extends DefaultDomainEntityService<Entity>,
160
- 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>
161
151
  > extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
162
152
  protected defaultRouteMethods: string[];
153
+ protected settings: { validationWhitelist?: boolean } = { validationWhitelist: true };
163
154
  protected validationPipe: ValidationPipe;
164
155
 
165
156
  constructor(
@@ -177,7 +168,8 @@ export class RESTAPIEntityControler<
177
168
  super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
178
169
  // const finalDto: typeof dto = {};
179
170
  // finalDto.bulkCreate = dto?.bulkCreate || BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
180
- this.validationPipe = new ValidationPipe({ whitelist: true });
171
+ const { validationWhitelist } = this.settings;
172
+ this.validationPipe = new ValidationPipe({ whitelist: validationWhitelist });
181
173
  }
182
174
 
183
175
  @Post('bulk')
@@ -210,7 +202,7 @@ export class RESTAPIEntityControler<
210
202
  }
211
203
 
212
204
  @Delete()
213
- async delete(@Body() body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult | void> {
205
+ async delete(@Body() body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult<Entity> | void> {
214
206
  return await super.delete.apply(this, [
215
207
  await this.validationPipe.transform(body, {
216
208
  metatype: this.dto.delete as unknown as Type,
@@ -249,18 +241,19 @@ export class RESTAPIEntityControler<
249
241
 
250
242
  static getDefaultDtos<EntityForDtos>(): {
251
243
  bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
244
+ create: DefaultDtos<EntityForDtos>['Create'];
245
+ delete: DefaultDtos<EntityForDtos>['Delete'];
252
246
  find: DefaultDtos<EntityForDtos>['Find'];
253
247
  findOne: DefaultDtos<EntityForDtos>['FindOne'];
248
+ update: DefaultDtos<EntityForDtos>['Update'];
254
249
  } {
255
250
  return {
256
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'],
257
254
  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
255
+ findOne: BaseFindOneDto as unknown as DefaultDtos<EntityForDtos>['FindOne'],
256
+ update: BaseUpdateDto as unknown as DefaultDtos<EntityForDtos>['Update']
264
257
  };
265
258
  }
266
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
- }