@node-c/api-rest 1.0.0-alpha9 → 1.0.0-beta1

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 +16 -17
  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 +16 -8
  34. package/dist/entityController/rest.entity.controller.js.map +1 -1
  35. package/package.json +8 -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 +35 -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 { 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,23 +1,15 @@
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>> {
1
+ import { LoggerService, ValidationPipe } from '@nestjs/common';
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;
7
+ protected logger: LoggerService;
16
8
  protected defaultRouteMethods?: string[] | undefined;
17
9
  inUseDefaultRoutes: {
18
10
  [handlerName: string]: boolean;
19
11
  };
20
- constructor(domainEntityService: EntityDomainService, defaultRouteMethods?: string[] | undefined);
12
+ constructor(domainEntityService: EntityDomainService, logger: LoggerService, defaultRouteMethods?: string[] | undefined);
21
13
  protected checkRoute(handlerName: string): void;
22
14
  bulkCreate(_body: BulkCreateBody<Entity>, ..._args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
23
15
  create(_body: CreateBody<Entity>, ..._args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
@@ -27,7 +19,7 @@ export declare class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainServic
27
19
  refreshDefaultRoutes(newDefaultRoutes?: string[]): void;
28
20
  update(_body: UpdateBody<Entity>, ..._args: unknown[]): Promise<DomainUpdateResult<Entity> | void>;
29
21
  }
30
- export declare class RESTAPIEntityControler<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>, Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>> extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
22
+ 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
23
  protected domainEntityService: EntityDomainService;
32
24
  protected dto: {
33
25
  bulkCreate?: Dto['BulkCreate'];
@@ -37,7 +29,11 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
37
29
  findOne?: Dto['FindOne'];
38
30
  update?: Dto['Update'];
39
31
  };
32
+ protected logger: LoggerService;
40
33
  protected defaultRouteMethods: string[];
34
+ protected settings: {
35
+ validationWhitelist?: boolean;
36
+ };
41
37
  protected validationPipe: ValidationPipe;
42
38
  constructor(domainEntityService: EntityDomainService, dto: {
43
39
  bulkCreate?: Dto['BulkCreate'];
@@ -46,7 +42,7 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
46
42
  find?: Dto['Find'];
47
43
  findOne?: Dto['FindOne'];
48
44
  update?: Dto['Update'];
49
- }, defaultRouteMethods?: string[]);
45
+ }, logger: LoggerService, defaultRouteMethods?: string[]);
50
46
  bulkCreate(body: Dto['BulkCreate'], ...args: unknown[]): Promise<DomainBulkCreateResult<Entity> | void>;
51
47
  create(body: Dto['Create'], ...args: unknown[]): Promise<DomainCreateResult<Entity> | void>;
52
48
  delete(body: Dto['Delete'], ...args: unknown[]): Promise<DomainDeleteResult<Entity> | void>;
@@ -54,8 +50,11 @@ export declare class RESTAPIEntityControler<Entity, EntityDomainService extends
54
50
  findOne(id: number | string, query: Dto['FindOne'], ...args: unknown[]): Promise<DomainFindOneResult<Entity> | void>;
55
51
  static getDefaultDtos<EntityForDtos>(): {
56
52
  bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
53
+ create: DefaultDtos<EntityForDtos>['Create'];
54
+ delete: DefaultDtos<EntityForDtos>['Delete'];
57
55
  find: DefaultDtos<EntityForDtos>['Find'];
58
56
  findOne: DefaultDtos<EntityForDtos>['FindOne'];
57
+ update: DefaultDtos<EntityForDtos>['Update'];
59
58
  };
60
59
  update(body: Dto['Update'], ...args: unknown[]): Promise<DomainUpdateResult<Entity> | void>;
61
60
  }
@@ -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":""}
@@ -37,8 +37,9 @@ const common_1 = require("@nestjs/common");
37
37
  const api_http_1 = require("@node-c/api-http");
38
38
  const dto_1 = require("./dto");
39
39
  let RESTAPIEntityControlerWithoutDto = class RESTAPIEntityControlerWithoutDto {
40
- constructor(domainEntityService, defaultRouteMethods) {
40
+ constructor(domainEntityService, logger, defaultRouteMethods) {
41
41
  this.domainEntityService = domainEntityService;
42
+ this.logger = logger;
42
43
  this.defaultRouteMethods = defaultRouteMethods;
43
44
  this.refreshDefaultRoutes();
44
45
  }
@@ -95,7 +96,8 @@ let RESTAPIEntityControlerWithoutDto = class RESTAPIEntityControlerWithoutDto {
95
96
  update(body) {
96
97
  return __awaiter(this, void 0, void 0, function* () {
97
98
  this.checkRoute('update');
98
- return yield this.domainEntityService.update(body.data, { filters: body.filters });
99
+ const { data } = body, options = __rest(body, ["data"]);
100
+ return yield this.domainEntityService.update(data, options);
99
101
  });
100
102
  }
101
103
  };
@@ -144,15 +146,18 @@ __decorate([
144
146
  __metadata("design:returntype", Promise)
145
147
  ], RESTAPIEntityControlerWithoutDto.prototype, "update", null);
146
148
  exports.RESTAPIEntityControlerWithoutDto = RESTAPIEntityControlerWithoutDto = __decorate([
147
- (0, common_1.UseInterceptors)(api_http_1.HTTPAuthorizationInterceptor, api_http_1.HTTPErrorInterceptor),
148
- __metadata("design:paramtypes", [Object, Array])
149
+ (0, common_1.UseInterceptors)(api_http_1.HTTPAccessControlInterceptor, api_http_1.HTTPErrorInterceptor),
150
+ __metadata("design:paramtypes", [Object, Object, Array])
149
151
  ], RESTAPIEntityControlerWithoutDto);
150
152
  class RESTAPIEntityControler extends RESTAPIEntityControlerWithoutDto {
151
- constructor(domainEntityService, dto, defaultRouteMethods) {
152
- super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
153
+ constructor(domainEntityService, dto, logger, defaultRouteMethods) {
154
+ super(domainEntityService, logger, Object.keys(dto || {}).concat(defaultRouteMethods || []));
153
155
  this.domainEntityService = domainEntityService;
154
156
  this.dto = dto;
155
- this.validationPipe = new common_1.ValidationPipe({ whitelist: true });
157
+ this.logger = logger;
158
+ this.settings = { validationWhitelist: true };
159
+ const { validationWhitelist } = this.settings;
160
+ this.validationPipe = new common_1.ValidationPipe({ whitelist: validationWhitelist });
156
161
  }
157
162
  bulkCreate(body, ...args) {
158
163
  const _super = Object.create(null, {
@@ -228,8 +233,11 @@ class RESTAPIEntityControler extends RESTAPIEntityControlerWithoutDto {
228
233
  static getDefaultDtos() {
229
234
  return {
230
235
  bulkCreate: dto_1.BulkCreateDto,
236
+ create: dto_1.CreateDto,
237
+ delete: dto_1.DeleteDto,
231
238
  find: dto_1.FindDto,
232
- findOne: dto_1.FindDto
239
+ findOne: dto_1.FindOneDto,
240
+ update: dto_1.UpdateDto
233
241
  };
234
242
  }
235
243
  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,26 @@
1
1
  {
2
2
  "name": "@node-c/api-rest",
3
- "version": "1.0.0-alpha9",
3
+ "version": "1.0.0-beta1",
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
+ "lint:fix": "eslint src --fix",
13
+ "publish-package": "npm run build:clean && npm publish --access public",
11
14
  "test": "vitest --config src/vitest.config.ts",
12
15
  "test:coverage": "vitest --config src/vitest.config.ts --coverage"
13
16
  },
14
17
  "dependencies": {
15
- "@nestjs/common": "^10.4.12",
18
+ "@nestjs/common": "^11.1.16",
16
19
  "class-transformer": "^0.5.1",
17
20
  "class-validator": "^0.14.1"
18
21
  },
19
22
  "peerDependencies": {
20
- "@node-c/api-http": "^1.0.0-alpha9",
21
- "@node-c/core": "^1.0.0-alpha9"
23
+ "@node-c/api-http": "^1.0.0-beta1",
24
+ "@node-c/core": "^1.0.0-beta1"
22
25
  }
23
26
  }
@@ -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
+ }
@@ -4,6 +4,7 @@ import {
4
4
  Get,
5
5
  HttpException,
6
6
  HttpStatus,
7
+ LoggerService,
7
8
  Param,
8
9
  Patch,
9
10
  Post,
@@ -13,21 +14,20 @@ import {
13
14
  ValidationPipe
14
15
  } from '@nestjs/common';
15
16
 
16
- import { HTTPAuthorizationInterceptor, HTTPErrorInterceptor } from '@node-c/api-http';
17
+ import { HTTPAccessControlInterceptor, HTTPErrorInterceptor } from '@node-c/api-http';
17
18
 
18
19
  import {
20
+ DataDefaultData,
19
21
  DomainBulkCreateResult,
20
22
  DomainCreateResult,
21
23
  DomainDeleteOptions,
22
24
  DomainDeleteResult,
23
- DomainEntityService,
24
25
  DomainEntityServiceDefaultData,
25
26
  DomainFindOneOptions,
26
27
  DomainFindOneResult,
27
28
  DomainFindOptions,
28
29
  DomainFindResult,
29
- DomainUpdateResult,
30
- PersistanceEntityService
30
+ DomainUpdateResult
31
31
  } from '@node-c/core';
32
32
 
33
33
  import {
@@ -40,39 +40,28 @@ import {
40
40
  } from './dto';
41
41
  import {
42
42
  BulkCreateBody,
43
- BulkCreateOptions,
44
43
  CreateBody,
45
- CreateOptions,
46
- UpdateBody,
47
- UpdateOptions
44
+ DefaultDomainEntityService,
45
+ UpdateBody
48
46
  } 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
- }
47
+ import { DefaultDtos } from './rest.entity.controller.dto.definitions';
66
48
 
67
49
  // TODO: a middleware for converting string booleans to booleans
68
- @UseInterceptors(HTTPAuthorizationInterceptor, HTTPErrorInterceptor)
69
- export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extends DefaultDomainEntityService<Entity>> {
50
+ @UseInterceptors(HTTPAccessControlInterceptor, HTTPErrorInterceptor)
51
+ export class RESTAPIEntityControlerWithoutDto<
52
+ Entity,
53
+ EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>,
54
+ DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>,
55
+ DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>
56
+ > {
70
57
  inUseDefaultRoutes: { [handlerName: string]: boolean };
71
58
 
72
59
  constructor(
73
60
  // eslint-disable-next-line no-unused-vars
74
61
  protected domainEntityService: EntityDomainService,
75
62
  // eslint-disable-next-line no-unused-vars
63
+ protected logger: LoggerService,
64
+ // eslint-disable-next-line no-unused-vars
76
65
  protected defaultRouteMethods?: string[]
77
66
  ) {
78
67
  this.refreshDefaultRoutes();
@@ -146,21 +135,25 @@ export class RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService extend
146
135
  @Patch()
147
136
  async update(@Body() body: UpdateBody<Entity>): Promise<DomainUpdateResult<Entity>> {
148
137
  this.checkRoute('update');
149
- return await this.domainEntityService.update(body.data, { filters: body.filters });
138
+ const { data, ...options } = body;
139
+ return await this.domainEntityService.update(data, options);
150
140
  }
151
141
  }
152
142
 
153
143
  /*
154
144
  * For reference on why the dto validation was done in this way - it's a limitation of Typescript itself:
155
145
  * the compiler doesn't emit generic type metadata, making it impossible to achieve a DRY OOP base class with schema validation.
156
- * At this point, it's a decade-old issue - see https://www.typescriptneedstypes.com/ for more details.
146
+ * At this point, it's a decade-old issue.
157
147
  */
158
148
  export class RESTAPIEntityControler<
159
149
  Entity,
160
- EntityDomainService extends DefaultDomainEntityService<Entity>,
161
- Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>
150
+ EntityDomainService extends DefaultDomainEntityService<Entity, DomainEntityServiceData, DataEntityServiceData>,
151
+ Dto extends DefaultDtos<Entity> = DefaultDtos<Entity>,
152
+ DomainEntityServiceData extends DomainEntityServiceDefaultData<Entity> = DomainEntityServiceDefaultData<Entity>,
153
+ DataEntityServiceData extends DataDefaultData<Entity> = DataDefaultData<Entity>
162
154
  > extends RESTAPIEntityControlerWithoutDto<Entity, EntityDomainService> {
163
155
  protected defaultRouteMethods: string[];
156
+ protected settings: { validationWhitelist?: boolean } = { validationWhitelist: true };
164
157
  protected validationPipe: ValidationPipe;
165
158
 
166
159
  constructor(
@@ -173,12 +166,14 @@ export class RESTAPIEntityControler<
173
166
  findOne?: Dto['FindOne'];
174
167
  update?: Dto['Update'];
175
168
  },
169
+ protected logger: LoggerService,
176
170
  defaultRouteMethods?: string[]
177
171
  ) {
178
- super(domainEntityService, Object.keys(dto || {}).concat(defaultRouteMethods || []));
172
+ super(domainEntityService, logger, Object.keys(dto || {}).concat(defaultRouteMethods || []));
179
173
  // const finalDto: typeof dto = {};
180
174
  // finalDto.bulkCreate = dto?.bulkCreate || BaseBulkCreateDto<Entity, BulkCreateOptions<Entity>>;
181
- this.validationPipe = new ValidationPipe({ whitelist: true });
175
+ const { validationWhitelist } = this.settings;
176
+ this.validationPipe = new ValidationPipe({ whitelist: validationWhitelist });
182
177
  }
183
178
 
184
179
  @Post('bulk')
@@ -250,18 +245,19 @@ export class RESTAPIEntityControler<
250
245
 
251
246
  static getDefaultDtos<EntityForDtos>(): {
252
247
  bulkCreate: DefaultDtos<EntityForDtos>['BulkCreate'];
248
+ create: DefaultDtos<EntityForDtos>['Create'];
249
+ delete: DefaultDtos<EntityForDtos>['Delete'];
253
250
  find: DefaultDtos<EntityForDtos>['Find'];
254
251
  findOne: DefaultDtos<EntityForDtos>['FindOne'];
252
+ update: DefaultDtos<EntityForDtos>['Update'];
255
253
  } {
256
254
  return {
257
255
  bulkCreate: BaseBulkCreateDto as unknown as DefaultDtos<EntityForDtos>['BulkCreate'],
256
+ create: BaseCreateDto as unknown as DefaultDtos<EntityForDtos>['Create'],
257
+ delete: BaseDeleteDto as unknown as DefaultDtos<EntityForDtos>['Delete'],
258
258
  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
259
+ findOne: BaseFindOneDto as unknown as DefaultDtos<EntityForDtos>['FindOne'],
260
+ update: BaseUpdateDto as unknown as DefaultDtos<EntityForDtos>['Update']
265
261
  };
266
262
  }
267
263
 
@@ -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
- }