@steroidsjs/nest 3.0.0 → 3.0.2

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 (107) hide show
  1. package/infrastructure/adapters/QueryAdapterTypeORM.js +26 -2
  2. package/infrastructure/adapters/QueryAdapterTypeORM.js.map +1 -1
  3. package/infrastructure/applications/base/config.js +1 -1
  4. package/infrastructure/applications/base/config.js.map +1 -1
  5. package/infrastructure/applications/console/ConsoleApplication.js +2 -2
  6. package/infrastructure/applications/console/ConsoleApplication.js.map +1 -1
  7. package/infrastructure/applications/console/config.js +3 -0
  8. package/infrastructure/applications/console/config.js.map +1 -1
  9. package/infrastructure/applications/rest/RestApplication.js +7 -0
  10. package/infrastructure/applications/rest/RestApplication.js.map +1 -1
  11. package/infrastructure/applications/rest/exceptions/RequestExecutionException.d.ts +6 -0
  12. package/infrastructure/applications/rest/exceptions/RequestExecutionException.js +6 -0
  13. package/infrastructure/applications/rest/exceptions/RequestExecutionException.js.map +1 -1
  14. package/infrastructure/commands/MigrateCommand.js +1 -0
  15. package/infrastructure/commands/MigrateCommand.js.map +1 -1
  16. package/infrastructure/commands/dbml/dbml2code.js +8 -0
  17. package/infrastructure/commands/dbml/dbml2code.js.map +1 -1
  18. package/infrastructure/commands/entity-generator/EntityCodeGenerateCommand.d.ts +4 -0
  19. package/infrastructure/commands/entity-generator/EntityCodeGenerateCommand.js +4 -0
  20. package/infrastructure/commands/entity-generator/EntityCodeGenerateCommand.js.map +1 -1
  21. package/infrastructure/commands/entity-generator/EntityCodeGenerator.js +1 -0
  22. package/infrastructure/commands/entity-generator/EntityCodeGenerator.js.map +1 -1
  23. package/infrastructure/commands/generate/CustomPostgresQueryRunner.d.ts +77 -0
  24. package/infrastructure/commands/generate/CustomPostgresQueryRunner.js +149 -0
  25. package/infrastructure/commands/generate/CustomPostgresQueryRunner.js.map +1 -1
  26. package/infrastructure/commands/generate/CustomRdbmsSchemaBuilder.js +7 -1
  27. package/infrastructure/commands/generate/CustomRdbmsSchemaBuilder.js.map +1 -1
  28. package/infrastructure/commands/generate/index.js +14 -0
  29. package/infrastructure/commands/generate/index.js.map +1 -1
  30. package/infrastructure/commands/importClassesFromDirectories.d.ts +3 -0
  31. package/infrastructure/commands/importClassesFromDirectories.js +3 -0
  32. package/infrastructure/commands/importClassesFromDirectories.js.map +1 -1
  33. package/infrastructure/decorators/Module.js +6 -0
  34. package/infrastructure/decorators/Module.js.map +1 -1
  35. package/infrastructure/decorators/TableFromModel.js +3 -0
  36. package/infrastructure/decorators/TableFromModel.js.map +1 -1
  37. package/infrastructure/decorators/fields/BaseField.js +5 -0
  38. package/infrastructure/decorators/fields/BaseField.js.map +1 -1
  39. package/infrastructure/decorators/fields/CreateTimeField.js +1 -0
  40. package/infrastructure/decorators/fields/CreateTimeField.js.map +1 -1
  41. package/infrastructure/decorators/fields/DateTimeField.js +5 -0
  42. package/infrastructure/decorators/fields/DateTimeField.js.map +1 -1
  43. package/infrastructure/decorators/fields/ExtendField.js +2 -0
  44. package/infrastructure/decorators/fields/ExtendField.js.map +1 -1
  45. package/infrastructure/decorators/fields/RelationField.js +3 -0
  46. package/infrastructure/decorators/fields/RelationField.js.map +1 -1
  47. package/infrastructure/decorators/fields/RelationIdField.js +2 -0
  48. package/infrastructure/decorators/fields/RelationIdField.js.map +1 -1
  49. package/infrastructure/decorators/fields/UidField.js +1 -0
  50. package/infrastructure/decorators/fields/UidField.js.map +1 -1
  51. package/infrastructure/decorators/fields/UpdateTimeField.js +1 -0
  52. package/infrastructure/decorators/fields/UpdateTimeField.js.map +1 -1
  53. package/infrastructure/filters/ValidationExceptionFilter.js +1 -0
  54. package/infrastructure/filters/ValidationExceptionFilter.js.map +1 -1
  55. package/infrastructure/helpers/ModuleHelper.d.ts +1 -0
  56. package/infrastructure/helpers/ModuleHelper.js +1 -0
  57. package/infrastructure/helpers/ModuleHelper.js.map +1 -1
  58. package/infrastructure/helpers/typeORM/ConditionHelperTypeORM.js +21 -18
  59. package/infrastructure/helpers/typeORM/ConditionHelperTypeORM.js.map +1 -1
  60. package/infrastructure/helpers/typeORM/SearchHelperTypeORM.js +6 -0
  61. package/infrastructure/helpers/typeORM/SearchHelperTypeORM.js.map +1 -1
  62. package/infrastructure/pipes/CreateDtoPipe.js +1 -0
  63. package/infrastructure/pipes/CreateDtoPipe.js.map +1 -1
  64. package/infrastructure/repositories/CrudRepository.d.ts +88 -0
  65. package/infrastructure/repositories/CrudRepository.js +85 -0
  66. package/infrastructure/repositories/CrudRepository.js.map +1 -1
  67. package/infrastructure/tests/ModelTest.test.js +23 -0
  68. package/infrastructure/tests/ModelTest.test.js.map +1 -1
  69. package/infrastructure/tests/app/services/ArticleService.d.ts +4 -1
  70. package/infrastructure/tests/app/services/ArticleService.js +3 -1
  71. package/infrastructure/tests/app/services/ArticleService.js.map +1 -1
  72. package/infrastructure/tests/app/services/CommentService.d.ts +4 -1
  73. package/infrastructure/tests/app/services/CommentService.js +3 -1
  74. package/infrastructure/tests/app/services/CommentService.js.map +1 -1
  75. package/infrastructure/tests/app/services/FileService.d.ts +4 -1
  76. package/infrastructure/tests/app/services/FileService.js +3 -1
  77. package/infrastructure/tests/app/services/FileService.js.map +1 -1
  78. package/infrastructure/tests/app/services/ImageService.d.ts +4 -1
  79. package/infrastructure/tests/app/services/ImageService.js +3 -1
  80. package/infrastructure/tests/app/services/ImageService.js.map +1 -1
  81. package/infrastructure/tests/app/services/TagService.d.ts +4 -1
  82. package/infrastructure/tests/app/services/TagService.js +3 -1
  83. package/infrastructure/tests/app/services/TagService.js.map +1 -1
  84. package/infrastructure/tests/app/services/UserService.d.ts +4 -1
  85. package/infrastructure/tests/app/services/UserService.js +3 -1
  86. package/infrastructure/tests/app/services/UserService.js.map +1 -1
  87. package/infrastructure/tests/bootstrap.js +1 -1
  88. package/infrastructure/tests/bootstrap.js.map +1 -1
  89. package/package.json +1 -1
  90. package/tsconfig.tsbuildinfo +1 -1
  91. package/usecases/base/SearchQuery.d.ts +12 -0
  92. package/usecases/base/SearchQuery.js +18 -0
  93. package/usecases/base/SearchQuery.js.map +1 -1
  94. package/usecases/helpers/DataMapper.js +6 -0
  95. package/usecases/helpers/DataMapper.js.map +1 -1
  96. package/usecases/helpers/ValidationHelper.d.ts +27 -0
  97. package/usecases/helpers/ValidationHelper.js +33 -0
  98. package/usecases/helpers/ValidationHelper.js.map +1 -1
  99. package/usecases/interfaces/IManualSchema.d.ts +4 -0
  100. package/usecases/services/CrudService.d.ts +47 -8
  101. package/usecases/services/CrudService.js +88 -0
  102. package/usecases/services/CrudService.js.map +1 -1
  103. package/usecases/services/ReadService.d.ts +31 -0
  104. package/usecases/services/ReadService.js +32 -0
  105. package/usecases/services/ReadService.js.map +1 -1
  106. package/usecases/validators/Validator.js +1 -0
  107. package/usecases/validators/Validator.js.map +1 -1
@@ -30,6 +30,14 @@ export default class SearchQuery<TModel> {
30
30
  protected _onGetMany: ISearchQueryConfig<TModel>['onGetMany'];
31
31
  constructor(config?: ISearchQueryConfig<TModel>);
32
32
  static createFromSchema<TModel>(SchemaClass: any, config?: ISearchQueryConfig<TModel>): SearchQuery<TModel>;
33
+ /**
34
+ * Short aliases primary usage is to avoid DB's alias length restriction. It's disabled by default.
35
+ *
36
+ * @param {string} relationPath
37
+ * @example model.firstRelation.secondRelation
38
+ *
39
+ * @param {boolean} isShort
40
+ */
33
41
  static getRelationAlias(relationPath: string, isShort?: boolean): string;
34
42
  select(value: string | string[]): this;
35
43
  addSelect(value: string | string[]): this;
@@ -38,6 +46,10 @@ export default class SearchQuery<TModel> {
38
46
  getExcludeSelect(): string[];
39
47
  alias(value: string): this;
40
48
  getAlias(): string;
49
+ /**
50
+ * Short name for getRelationAlias
51
+ * @param {string} relationPath
52
+ */
41
53
  a(relationPath: any): string;
42
54
  getRelationAlias(relationPath: any): string;
43
55
  getShortAliasesAreUsed(): boolean;
@@ -23,13 +23,24 @@ class SearchQuery {
23
23
  } })), {});
24
24
  return searchQuery;
25
25
  }
26
+ /**
27
+ * Short aliases primary usage is to avoid DB's alias length restriction. It's disabled by default.
28
+ *
29
+ * @param {string} relationPath
30
+ * @example model.firstRelation.secondRelation
31
+ *
32
+ * @param {boolean} isShort
33
+ */
26
34
  static getRelationAlias(relationPath, isShort = false) {
27
35
  const relationsArray = relationPath.split('.');
28
36
  if (!isShort) {
29
37
  return relationsArray.join('_');
30
38
  }
31
39
  else {
40
+ // first letter + the uppercase letters + relation index in path + relation length
41
+ // model.firstRelation.secondRelation -> m0_fr113_sr214
32
42
  return relationsArray.map((relation, index) => {
43
+ // root alias shouldn't change
33
44
  if (index === 0) {
34
45
  return relation;
35
46
  }
@@ -71,6 +82,10 @@ class SearchQuery {
71
82
  getAlias() {
72
83
  return this._alias;
73
84
  }
85
+ /**
86
+ * Short name for getRelationAlias
87
+ * @param {string} relationPath
88
+ */
74
89
  a(relationPath) {
75
90
  return this.getRelationAlias(relationPath);
76
91
  }
@@ -92,6 +107,7 @@ class SearchQuery {
92
107
  }
93
108
  }
94
109
  const relations = useJoin ? this._relationsJoin : this._relationsNoJoin;
110
+ // Normalize format (one relation, many relations, relations + select)
95
111
  let relationObj = {};
96
112
  if (typeof relation === 'string') {
97
113
  relationObj = { [relation]: '*' };
@@ -109,6 +125,8 @@ class SearchQuery {
109
125
  } })), {});
110
126
  }
111
127
  Object.keys(relationObj).forEach(path => {
128
+ // Store intermediate relations
129
+ // Normalize relations: a.b.c -> a, a.b, a.b.c
112
130
  let currentPath;
113
131
  path.split('.').forEach(name => {
114
132
  currentPath = [currentPath, name].filter(Boolean).join('.');
@@ -1 +1 @@
1
- {"version":3,"file":"SearchQuery.js","sourceRoot":"","sources":["../../../src/usecases/base/SearchQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchQuery.js","sourceRoot":"","sources":["../../../src/usecases/base/SearchQuery.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ const Transform_1 = require("../../infrastructure/decorators/Transform");
9
9
  const TableFromModel_1 = require("../../infrastructure/decorators/TableFromModel");
10
10
  class DataMapper {
11
11
  static create(MetaClass, values, transformType = Transform_1.TRANSFORM_TYPE_DEFAULT, skipBuilder = false) {
12
+ // Check empty
12
13
  if (values === null) {
13
14
  return null;
14
15
  }
@@ -20,6 +21,11 @@ class DataMapper {
20
21
  return builder(values);
21
22
  }
22
23
  const result = new MetaClass();
24
+ /**
25
+ * Is schema implements [[IManualSchema]]?
26
+ * @see IManualSchema
27
+ */
28
+ // TODO May be @BeforeCreate() decorator?
23
29
  if (result['updateFromModel'] && typeof result['updateFromModel'] === 'function' && values) {
24
30
  result['updateFromModel'](values);
25
31
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"DataMapper.js","sourceRoot":"","sources":["../../../src/usecases/helpers/DataMapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataMapper.js","sourceRoot":"","sources":["../../../src/usecases/helpers/DataMapper.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,37 @@
1
1
  import { ValidationError, ValidatorOptions } from 'class-validator';
2
2
  import { IValidator, IValidatorParams } from '../interfaces/IValidator';
3
3
  import { IErrorsCompositeObject } from '../interfaces/IErrorsCompositeObject';
4
+ /**
5
+ * @deprecated Use ValidationHelper.validate()
6
+ * @throws {ValidationException}
7
+ */
4
8
  export declare function validateOrReject(dto: any, validatorOptions?: ValidatorOptions): Promise<void>;
9
+ /**
10
+ * Класс для запуска валидации DTO и моделей.
11
+ * Чтобы сделать кастомную валидацию по классам, необходимо:
12
+ * 1. Создать класс валидатора с интерфейсом IValidator
13
+ * 2. Добавить его в providers модуля
14
+ * 3. В сервис, который будет валидировать DTO, объявить в конструкторе
15
+ * `public validators: IValidator[]`
16
+ * 4. В модуле пробросить экземпляр валидатора в сервис в массив validators.
17
+ */
5
18
  export declare class ValidationHelper {
19
+ /**
20
+ * validate object and throw error
21
+ * @throws {ValidationException}
22
+ */
6
23
  static validate(dto: any, params?: IValidatorParams, allValidators?: IValidator[]): Promise<void>;
24
+ /**
25
+ * Validate by class-validator library (without custom class validators)
26
+ * @param dto
27
+ */
7
28
  static getClassValidatorErrors(dto: any): Promise<IErrorsCompositeObject | null>;
29
+ /**
30
+ * Validate by custom class validators
31
+ * @param dto
32
+ * @param params
33
+ * @param validatorsInstances
34
+ */
8
35
  static getSteroidsErrors(dto: any, params?: IValidatorParams, validatorsInstances?: IValidator[]): Promise<IErrorsCompositeObject | null>;
9
36
  protected static getSteroidsFieldValidatorsErrors(dto: any, key: string, params: IValidatorParams, validatorsInstances: IValidator[]): Promise<string[]>;
10
37
  static parseClassValidatorErrors(errors: ValidationError[]): IErrorsCompositeObject;
@@ -11,6 +11,10 @@ const defaultValidatorOptions = {
11
11
  whitelist: false,
12
12
  forbidUnknownValues: false,
13
13
  };
14
+ /**
15
+ * @deprecated Use ValidationHelper.validate()
16
+ * @throws {ValidationException}
17
+ */
14
18
  async function validateOrReject(dto, validatorOptions) {
15
19
  const classValidatorErrors = await (0, class_validator_1.validate)(dto, Object.assign(Object.assign({}, defaultValidatorOptions), validatorOptions));
16
20
  if (classValidatorErrors.length) {
@@ -19,7 +23,20 @@ async function validateOrReject(dto, validatorOptions) {
19
23
  }
20
24
  }
21
25
  exports.validateOrReject = validateOrReject;
26
+ /**
27
+ * Класс для запуска валидации DTO и моделей.
28
+ * Чтобы сделать кастомную валидацию по классам, необходимо:
29
+ * 1. Создать класс валидатора с интерфейсом IValidator
30
+ * 2. Добавить его в providers модуля
31
+ * 3. В сервис, который будет валидировать DTO, объявить в конструкторе
32
+ * `public validators: IValidator[]`
33
+ * 4. В модуле пробросить экземпляр валидатора в сервис в массив validators.
34
+ */
22
35
  class ValidationHelper {
36
+ /**
37
+ * validate object and throw error
38
+ * @throws {ValidationException}
39
+ */
23
40
  static async validate(dto, params = null, allValidators = null) {
24
41
  var _a;
25
42
  const classValidatorErrors = await this.getClassValidatorErrors(dto);
@@ -33,6 +50,10 @@ class ValidationHelper {
33
50
  throw new exceptions_1.ValidationException(errors);
34
51
  }
35
52
  }
53
+ /**
54
+ * Validate by class-validator library (without custom class validators)
55
+ * @param dto
56
+ */
36
57
  static async getClassValidatorErrors(dto) {
37
58
  const errors = await (0, class_validator_1.validate)(dto, defaultValidatorOptions);
38
59
  if (errors.length) {
@@ -40,6 +61,12 @@ class ValidationHelper {
40
61
  }
41
62
  return null;
42
63
  }
64
+ /**
65
+ * Validate by custom class validators
66
+ * @param dto
67
+ * @param params
68
+ * @param validatorsInstances
69
+ */
43
70
  static async getSteroidsErrors(dto, params = null, validatorsInstances = null) {
44
71
  var _a, _b;
45
72
  if (!dto) {
@@ -62,6 +89,7 @@ class ValidationHelper {
62
89
  }
63
90
  }
64
91
  else if (value && (0, lodash_1.isObject)(value)) {
92
+ // Nested validation for object
65
93
  keyErrors = await this.getSteroidsErrors(value, nextParams, validatorsInstances);
66
94
  }
67
95
  if (keyErrors) {
@@ -73,6 +101,7 @@ class ValidationHelper {
73
101
  errors[key] = fieldValidatorsErrors;
74
102
  }
75
103
  }
104
+ // Has errors?
76
105
  if (Object.keys(errors).length > 0) {
77
106
  return errors;
78
107
  }
@@ -80,9 +109,11 @@ class ValidationHelper {
80
109
  }
81
110
  static async getSteroidsFieldValidatorsErrors(dto, key, params, validatorsInstances) {
82
111
  let fieldValidatorErrors = [];
112
+ // Get field validators
83
113
  const fieldValidators = (0, Validator_1.getFieldValidators)(dto.constructor, key);
84
114
  for (const fieldValidator of fieldValidators) {
85
115
  try {
116
+ // Find validator instance
86
117
  const validator = (validatorsInstances || []).find(item => {
87
118
  try {
88
119
  return item instanceof fieldValidator;
@@ -99,9 +130,11 @@ class ValidationHelper {
99
130
  throw new Error(`Not found validator instance for "${dto.constructor.name}.${key}"`
100
131
  + ' Please add it to CrudService.validators array.');
101
132
  }
133
+ // Run validator
102
134
  await validator.validate(dto, Object.assign(Object.assign({}, params), { name: key }));
103
135
  }
104
136
  catch (e) {
137
+ // Check validator is throw specific exception
105
138
  if (e instanceof FieldValidatorException_1.FieldValidatorException) {
106
139
  fieldValidatorErrors.push(e.message);
107
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValidationHelper.js","sourceRoot":"","sources":["../../../src/usecases/helpers/ValidationHelper.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
1
  export default interface IManualSchema<TModel> {
2
+ /**
3
+ * Manually set schema fields based on the passed model
4
+ * @param model
5
+ */
2
6
  updateFromModel(model: TModel): any;
3
7
  }
@@ -1,19 +1,58 @@
1
+ import { DeepPartial } from '@steroidsjs/typeorm';
1
2
  import { ISearchInputDto } from '../dtos/SearchInputDto';
2
3
  import { ContextDto } from '../dtos/ContextDto';
3
4
  import { ReadService } from './ReadService';
4
5
  import { IType } from '../interfaces/IType';
5
- export declare class CrudService<TModel, TSearchDto = ISearchInputDto, TSaveDto = TModel> extends ReadService<TModel, TSearchDto> {
6
- create(dto: Partial<TModel>, context?: ContextDto | null): Promise<TModel>;
7
- create<TSchema>(dto: Partial<TModel>, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<IType<TSchema>>;
8
- update<TSchema>(id: number | string, dto: Partial<TModel>, context?: ContextDto | null): Promise<TModel>;
9
- update<TSchema>(id: number | string, dto: Partial<TModel>, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<TSchema>;
10
- save<TSchema>(id: number | string, dto: Partial<TModel>, context?: ContextDto | null): Promise<TModel>;
11
- save<TSchema>(id: number | string, dto: Partial<TModel>, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<TSchema>;
6
+ /**
7
+ * Generic CRUD service
8
+ */
9
+ export declare class CrudService<TModel, TSearchDto = ISearchInputDto,
10
+ /** @deprecated */
11
+ TSaveDto = TModel> extends ReadService<TModel, TSearchDto> {
12
+ create(dto: DeepPartial<TModel>, context?: ContextDto | null): Promise<TModel>;
13
+ create<TSchema>(dto: DeepPartial<TModel>, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<TSchema>;
14
+ update<TSchema>(id: number | string, dto: DeepPartial<TModel>, context?: ContextDto | null): Promise<TModel>;
15
+ update<TSchema>(id: number | string, dto: DeepPartial<TModel>, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<TSchema>;
16
+ save<TSchema>(id: number | string, dto: DeepPartial<TModel>, context?: ContextDto | null): Promise<TModel>;
17
+ save<TSchema>(id: number | string, dto: DeepPartial<TModel>, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<TSchema>;
18
+ /**
19
+ * Internal save method for overwrite in project
20
+ * @param prevModel
21
+ * @param nextModel
22
+ * @param diffModel
23
+ * @param context
24
+ */
12
25
  saveInternal(prevModel: TModel | null, nextModel: TModel, diffModel: TModel, context?: ContextDto): Promise<void>;
13
26
  checkHasRelatedModels(id: string | number, service: CrudService<any>): Promise<void>;
27
+ /**
28
+ * Remove model
29
+ * @param rawId
30
+ * @param context
31
+ */
14
32
  remove(rawId: number | string, context?: ContextDto): Promise<void>;
33
+ /**
34
+ * Internal remove method for overwrite in project
35
+ * @param id
36
+ * @param context
37
+ */
15
38
  removeInternal(id: number, context?: ContextDto): Promise<void>;
39
+ /**
40
+ * Soft remove model
41
+ * @param rawId
42
+ * @param context
43
+ */
16
44
  softRemove(rawId: number | string, context?: ContextDto): Promise<void>;
45
+ /**
46
+ * Internal soft remove method for overwrite in project
47
+ * @param id
48
+ * @param context
49
+ */
17
50
  softRemoveInternal(id: number, context?: ContextDto): Promise<void>;
18
- protected dtoToModel(dto: Partial<TModel>): TModel;
51
+ /**
52
+ * Mapping dto to model class
53
+ * @param dto
54
+ * @protected
55
+ * @throws Error if modelClass is not set
56
+ */
57
+ protected dtoToModel(dto: DeepPartial<TModel>): TModel;
19
58
  }
@@ -8,18 +8,44 @@ const BaseField_1 = require("../../infrastructure/decorators/fields/BaseField");
8
8
  const RelationTypeEnum_1 = require("../../domain/enums/RelationTypeEnum");
9
9
  const exceptions_1 = require("../exceptions");
10
10
  const ReadService_1 = require("./ReadService");
11
+ /**
12
+ * Generic CRUD service
13
+ */
11
14
  class CrudService extends ReadService_1.ReadService {
15
+ /**
16
+ * Create new model
17
+ * @param dto
18
+ * @param context
19
+ * @param schemaClass
20
+ */
12
21
  async create(dto, context = null, schemaClass = null) {
13
22
  return this.save(null, dto, context, schemaClass);
14
23
  }
24
+ /**
25
+ * Update model
26
+ * @param rawId
27
+ * @param dto
28
+ * @param context
29
+ * @param schemaClass
30
+ */
15
31
  async update(rawId, dto, context = null, schemaClass = null) {
16
32
  return this.save(rawId, dto, context, schemaClass);
17
33
  }
34
+ /**
35
+ * Update model
36
+ * @param rawId
37
+ * @param dto
38
+ * @param context
39
+ * @param schemaClass
40
+ * @throws Error if dto is instance of model class
41
+ * @throws Error if rawId passed and prevModel not found
42
+ */
18
43
  async save(rawId, dto, context = null, schemaClass = null) {
19
44
  if (this.isModel(dto)) {
20
45
  throw new Error('The model itself shouldn\'t be used as a DTO');
21
46
  }
22
47
  const id = rawId ? (0, lodash_1.toInteger)(rawId) : null;
48
+ // Fetch previous model state
23
49
  let prevModel = null;
24
50
  if (id) {
25
51
  prevModel = await this.createQuery()
@@ -30,32 +56,56 @@ class CrudService extends ReadService_1.ReadService {
30
56
  throw new Error('Not found model by id: ' + id);
31
57
  }
32
58
  }
59
+ // Create next model state
33
60
  const ModelClass = this.modelClass;
34
61
  const nextModel = new ModelClass();
62
+ // Сперва добавляем данные для новой модели из старой
35
63
  if (prevModel) {
36
64
  DataMapper_1.DataMapper.applyValues(nextModel, prevModel);
37
65
  }
66
+ // Модель с измененными полями
38
67
  const diffModel = this.dtoToModel(dto);
68
+ // Принудительно добавляем primary key, т.к. его зачастую нет в dto
39
69
  if (id) {
40
70
  diffModel[this.primaryKey] = id;
41
71
  }
72
+ // Затем накатываем изменения
42
73
  DataMapper_1.DataMapper.applyValues(nextModel, diffModel);
74
+ // Validate dto
43
75
  await this.validate(dto, {
44
76
  prevModel,
45
77
  nextModel,
46
78
  context,
47
79
  });
80
+ // Validate by ModelClass
48
81
  await this.validate(nextModel, {
49
82
  prevModel,
50
83
  nextModel,
51
84
  context,
52
85
  });
86
+ // Save
53
87
  await this.saveInternal(prevModel, nextModel, diffModel, context);
88
+ // Convert to schema, if need
54
89
  return schemaClass
55
90
  ? this.findById(nextModel[this.primaryKey], context, schemaClass)
56
91
  : nextModel;
57
92
  }
93
+ /**
94
+ * Internal save method for overwrite in project
95
+ * @param prevModel
96
+ * @param nextModel
97
+ * @param diffModel
98
+ * @param context
99
+ */
58
100
  async saveInternal(prevModel, nextModel, diffModel, context) {
101
+ // you code outside transaction before save
102
+ // await this.repository.save(diffModel, async (save) => {
103
+ // you code inside transaction before save
104
+ // await save();
105
+ // you code inside transaction after save
106
+ // });
107
+ // you code outside transaction after save
108
+ // or save() call without transaction
59
109
  await this.repository.save(diffModel);
60
110
  }
61
111
  async checkHasRelatedModels(id, service) {
@@ -76,25 +126,63 @@ class CrudService extends ReadService_1.ReadService {
76
126
  }
77
127
  });
78
128
  }
129
+ /**
130
+ * Remove model
131
+ * @param rawId
132
+ * @param context
133
+ */
79
134
  async remove(rawId, context = null) {
80
135
  const id = (0, lodash_1.toInteger)(rawId);
81
136
  await this.checkHasRelatedModels(id, this);
82
137
  await this.removeInternal(id, context);
83
138
  }
139
+ /**
140
+ * Internal remove method for overwrite in project
141
+ * @param id
142
+ * @param context
143
+ */
84
144
  async removeInternal(id, context) {
145
+ // you code outside transaction before remove
85
146
  await this.repository.remove(id, async (remove) => {
147
+ // you code inside transaction before remove
86
148
  await remove();
149
+ // you code inside transaction after remove
87
150
  });
151
+ // you code outside transaction after remove
152
+ // or remove() call without transaction
153
+ // await this.repository.remove(id);
88
154
  }
155
+ /**
156
+ * Soft remove model
157
+ * @param rawId
158
+ * @param context
159
+ */
89
160
  async softRemove(rawId, context = null) {
90
161
  const id = (0, lodash_1.toInteger)(rawId);
91
162
  await this.softRemoveInternal(id, context);
92
163
  }
164
+ /**
165
+ * Internal soft remove method for overwrite in project
166
+ * @param id
167
+ * @param context
168
+ */
93
169
  async softRemoveInternal(id, context) {
170
+ // you code outside transaction before soft remove
94
171
  await this.repository.softRemove(id, async (softRemove) => {
172
+ // you code inside transaction before soft remove
95
173
  await softRemove();
174
+ // you code inside transaction after soft remove
96
175
  });
176
+ // you code outside transaction after soft remove
177
+ // or softRemove() call without transaction
178
+ // await this.repository.softRemove(id);
97
179
  }
180
+ /**
181
+ * Mapping dto to model class
182
+ * @param dto
183
+ * @protected
184
+ * @throws Error if modelClass is not set
185
+ */
98
186
  dtoToModel(dto) {
99
187
  if (!this.modelClass) {
100
188
  throw new Error('Property modelClass is not set in service: ' + this.constructor.name);
@@ -1 +1 @@
1
- {"version":3,"file":"CrudService.js","sourceRoot":"","sources":["../../../src/usecases/services/CrudService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CrudService.js","sourceRoot":"","sources":["../../../src/usecases/services/CrudService.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,sDAAiD;AAEjD,qDAA8C;AAE9C,gFAAwG;AACxG,0EAAqE;AACrE,8CAA4C;AAC5C,+CAA0C;AAG1C;;GAEG;AACH,MAAa,WAKX,SAAQ,yBAA+B;IASrC;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CACR,GAAwB,EACxB,UAAsB,IAAI,EAC1B,cAA8B,IAAI;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAUD;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACR,KAAsB,EACtB,GAAwB,EACxB,UAAsB,IAAI,EAC1B,cAA8B,IAAI;QAElC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvD,CAAC;IAUD;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CACN,KAA6B,EAC7B,GAAwB,EACxB,UAAsB,IAAI,EAC1B,cAA8B,IAAI;QAElC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACnE;QAED,MAAM,EAAE,GAAW,KAAK,CAAC,CAAC,CAAC,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,SAAS,GAAG,IAAI,CAAC;QACrB,IAAI,EAAE,EAAE;YACJ,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;iBAC/B,IAAI,CAAC,IAAA,4BAAgB,EAAC,GAAG,CAAC,WAAW,CAAC,CAAC;iBACvC,KAAK,CAAC,EAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAC,CAAC;iBAC9B,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,SAAS,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;aACnD;SACJ;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;QAEnC,qDAAqD;QACrD,IAAI,SAAS,EAAE;YACX,uBAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SAChD;QAED,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEvC,mEAAmE;QACnE,IAAI,EAAE,EAAE;YACJ,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;SACnC;QAED,6BAA6B;QAC7B,uBAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE7C,eAAe;QACf,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,SAAS;YACT,SAAS;YACT,OAAO;SACV,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,SAAS;YACT,SAAS;YACT,OAAO;SACV,CAAC,CAAC;QAEH,OAAO;QACP,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAElE,6BAA6B;QAC7B,OAAO,WAAW;YACd,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC;YACjE,CAAC,CAAC,SAAS,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,SAAwB,EAAE,SAAiB,EAAE,SAAiB,EAAE,OAAoB;QACnG,2CAA2C;QAC3C,0DAA0D;QACtD,0CAA0C;QAC1C,gBAAgB;QAChB,yCAAyC;QAC7C,MAAM;QACN,0CAA0C;QAE1C,qCAAqC;QACrC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAAmB,EAAE,OAAyB;QACtE,MAAM,SAAS,GAAG,IAAA,gCAAoB,EAAC,IAAI,CAAC,UAAU,EAClD,CAAC,QAAQ,EAAE,EAAE;YACT,IAAI,QAAQ,CAAC,IAAI,KAAK,mCAAgB,CAAC,QAAQ,EAAE;gBAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAA;aAChC;YACD,OAAO,mCAAgB,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAA;QACvD,CAAC,CAAC,CAAC;QACP,MAAM,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3B,WAAW,CAAC,KAAK,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;;YAC3B,IAAI,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,QAAQ,CAAC,0CAAE,MAAM,IAAG,CAAC,EAAE;gBAC/B,MAAM,IAAI,0BAAa,CAAC,yCAAyC,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;aACtF;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,KAAsB,EAAE,UAAsB,IAAI;QAC3D,MAAM,EAAE,GAAW,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,EAAU,EAAE,OAAoB;QACjD,6CAA6C;QAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9C,4CAA4C;YAC5C,MAAM,MAAM,EAAE,CAAC;YACf,2CAA2C;QAC/C,CAAC,CAAC,CAAC;QACH,4CAA4C;QAE5C,uCAAuC;QACvC,oCAAoC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,KAAsB,EAAE,UAAsB,IAAI;QAC/D,MAAM,EAAE,GAAW,IAAA,kBAAU,EAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,OAAoB;QACrD,kDAAkD;QAClD,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,UAA+B,EAAE,EAAE;YAC3E,iDAAiD;YACjD,MAAM,UAAU,EAAE,CAAC;YACnB,gDAAgD;QACpD,CAAC,CAAC,CAAC;QACH,iDAAiD;QAEjD,2CAA2C;QAC3C,wCAAwC;IAC5C,CAAC;IAED;;;;;OAKG;IACO,UAAU,CAAC,GAAwB;QACzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC1F;QACD,OAAO,uBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;CACJ;AApPD,kCAoPC"}
@@ -5,19 +5,50 @@ import SearchQuery, { ISearchQueryConfig } from '../base/SearchQuery';
5
5
  import { ContextDto } from '../dtos/ContextDto';
6
6
  import { IValidator, IValidatorParams } from '../interfaces/IValidator';
7
7
  import { IType } from '../interfaces/IType';
8
+ /**
9
+ * Generic Read service (search and find)
10
+ */
8
11
  export declare class ReadService<TModel, TSearchDto = ISearchInputDto> {
12
+ /**
13
+ * Model primary key
14
+ */
9
15
  protected primaryKey: string;
16
+ /**
17
+ * CRUD repository instance (not TypeORM!)
18
+ * @protected
19
+ */
10
20
  protected repository: ICrudRepository<TModel>;
21
+ /**
22
+ * Model class
23
+ * @protected
24
+ */
11
25
  protected modelClass: IType<TModel>;
26
+ /**
27
+ * Injected validator instances
28
+ */
12
29
  validators: IValidator[];
13
30
  init(repository: ICrudRepository<TModel>, ModelClass: IType<TModel>): void;
14
31
  search(dto: TSearchDto, context?: ContextDto | null): Promise<SearchResultDto<TModel>>;
15
32
  search<TSchema>(dto: TSearchDto, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<SearchResultDto<TSchema>>;
16
33
  findById(id: number | string, context?: ContextDto | null): Promise<TModel>;
17
34
  findById<TSchema>(id: number | string, context?: ContextDto | null, schemaClass?: IType<TSchema>): Promise<TSchema>;
35
+ /**
36
+ * Find one model by search query (selects and condition)
37
+ * @param searchQuery
38
+ */
18
39
  findOne(searchQuery: SearchQuery<TModel>): Promise<TModel>;
40
+ /**
41
+ * Find many models by search query (selects and condition)
42
+ * @param searchQuery
43
+ */
19
44
  findMany(searchQuery: SearchQuery<TModel>): Promise<TModel[]>;
20
45
  createQuery(config?: ISearchQueryConfig<TModel>): SearchQuery<TModel>;
46
+ /**
47
+ * Mapping model to schema class
48
+ * @param model
49
+ * @param schemaClass
50
+ * @protected
51
+ */
21
52
  protected modelToSchema<TSchema>(model: TModel, schemaClass: IType<TSchema>): TSchema;
22
53
  protected validate(dto: any, params?: IValidatorParams): Promise<void>;
23
54
  protected isModel(obj: unknown): obj is TModel;