@zola_do/crud 0.2.1 → 0.2.3

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 (56) hide show
  1. package/README.md +31 -0
  2. package/dist/controller/entity-crud.controller.d.ts +1 -1
  3. package/dist/controller/entity-crud.controller.js +97 -31
  4. package/dist/controller/entity-crud.controller.js.map +1 -1
  5. package/dist/controller/extra-crud.controller.d.ts +1 -1
  6. package/dist/controller/extra-crud.controller.js +96 -31
  7. package/dist/controller/extra-crud.controller.js.map +1 -1
  8. package/dist/controller/relation-crud.controller.js +70 -22
  9. package/dist/controller/relation-crud.controller.js.map +1 -1
  10. package/dist/crud-operation/controller/entity-crud.controller.js +3 -3
  11. package/dist/crud-operation/controller/entity-crud.controller.js.map +1 -1
  12. package/dist/crud-operation/controller/extra-crud.controller.js +3 -3
  13. package/dist/crud-operation/controller/extra-crud.controller.js.map +1 -1
  14. package/dist/crud-operation/controller/relation-crud.controller.js +2 -2
  15. package/dist/crud-operation/controller/relation-crud.controller.js.map +1 -1
  16. package/dist/crud-operation/repository/entity-crud.repository.d.ts +3 -3
  17. package/dist/crud-operation/repository/entity-crud.repository.js +71 -9
  18. package/dist/crud-operation/repository/entity-crud.repository.js.map +1 -1
  19. package/dist/crud-operation/repository/extra-crud.repository.d.ts +3 -3
  20. package/dist/crud-operation/repository/extra-crud.repository.js +71 -9
  21. package/dist/crud-operation/repository/extra-crud.repository.js.map +1 -1
  22. package/dist/crud-operation/repository/relation-crud.repository.d.ts +2 -2
  23. package/dist/crud-operation/repository/relation-crud.repository.js +22 -2
  24. package/dist/crud-operation/repository/relation-crud.repository.js.map +1 -1
  25. package/dist/crud-operation/service/entity-crud.service.d.ts +3 -3
  26. package/dist/crud-operation/service/entity-crud.service.js +28 -6
  27. package/dist/crud-operation/service/entity-crud.service.js.map +1 -1
  28. package/dist/crud-operation/service/extra-crud.service.d.ts +3 -3
  29. package/dist/crud-operation/service/extra-crud.service.js +28 -6
  30. package/dist/crud-operation/service/extra-crud.service.js.map +1 -1
  31. package/dist/crud-operation/service/relation-crud.service.d.ts +2 -2
  32. package/dist/crud-operation/service/relation-crud.service.js +4 -4
  33. package/dist/crud-operation/service/relation-crud.service.js.map +1 -1
  34. package/dist/service/entity-crud.service.d.ts +3 -3
  35. package/dist/service/entity-crud.service.js +71 -9
  36. package/dist/service/entity-crud.service.js.map +1 -1
  37. package/dist/service/extra-crud.service.d.ts +3 -3
  38. package/dist/service/extra-crud.service.js +71 -9
  39. package/dist/service/extra-crud.service.js.map +1 -1
  40. package/dist/service/relation-crud.service.d.ts +2 -2
  41. package/dist/service/relation-crud.service.js +22 -2
  42. package/dist/service/relation-crud.service.js.map +1 -1
  43. package/dist/shared/guards/crud-operation-disabled.guard.d.ts +7 -0
  44. package/dist/shared/guards/crud-operation-disabled.guard.js +16 -0
  45. package/dist/shared/guards/crud-operation-disabled.guard.js.map +1 -0
  46. package/dist/shared/index.d.ts +1 -0
  47. package/dist/shared/index.js +1 -0
  48. package/dist/shared/index.js.map +1 -1
  49. package/dist/shared/types/crud-option.type.d.ts +48 -0
  50. package/dist/shared/utils/crud-hooks.helper.d.ts +10 -0
  51. package/dist/shared/utils/crud-hooks.helper.js +42 -0
  52. package/dist/shared/utils/crud-hooks.helper.js.map +1 -0
  53. package/dist/shared/utils/index.d.ts +1 -0
  54. package/dist/shared/utils/index.js +1 -0
  55. package/dist/shared/utils/index.js.map +1 -1
  56. package/package.json +11 -4
@@ -18,7 +18,7 @@ let RelationCrudRepository = class RelationCrudRepository {
18
18
  constructor(repository) {
19
19
  this.repository = repository;
20
20
  }
21
- async bulkSaveFirst(payload, relationCrudOptions) {
21
+ async bulkSaveFirst(payload, relationCrudOptions, req) {
22
22
  const firstEntityIdName = relationCrudOptions.firstEntityIdName;
23
23
  const secondEntityIdName = relationCrudOptions.secondEntityIdName;
24
24
  const include = relationCrudOptions.firstInclude;
@@ -33,12 +33,22 @@ let RelationCrudRepository = class RelationCrudRepository {
33
33
  });
34
34
  const deleteCondition = {};
35
35
  deleteCondition[firstEntityIdName] = entityId;
36
+ await (0, shared_1.runCrudHook)(relationCrudOptions, 'beforeAssignFirst', {
37
+ id: entityId,
38
+ itemData: payload,
39
+ req,
40
+ });
36
41
  await this.repository.delete(deleteCondition);
37
42
  const data = this.repository.create(parsedPayload);
38
43
  await this.repository.insert(data);
44
+ await (0, shared_1.runCrudHook)(relationCrudOptions, 'afterAssignFirst', {
45
+ id: entityId,
46
+ entity: data,
47
+ req,
48
+ });
39
49
  return data;
40
50
  }
41
- async bulkSaveSecond(payload, relationCrudOptions) {
51
+ async bulkSaveSecond(payload, relationCrudOptions, req) {
42
52
  const firstEntityIdName = relationCrudOptions.firstEntityIdName;
43
53
  const secondEntityIdName = relationCrudOptions.secondEntityIdName;
44
54
  const include = relationCrudOptions.secondInclude;
@@ -53,9 +63,19 @@ let RelationCrudRepository = class RelationCrudRepository {
53
63
  });
54
64
  const deleteCondition = {};
55
65
  deleteCondition[secondEntityIdName] = entityId;
66
+ await (0, shared_1.runCrudHook)(relationCrudOptions, 'beforeAssignSecond', {
67
+ id: entityId,
68
+ itemData: payload,
69
+ req,
70
+ });
56
71
  await this.repository.delete(deleteCondition);
57
72
  const data = this.repository.create(parsedPayload);
58
73
  await this.repository.insert(data);
74
+ await (0, shared_1.runCrudHook)(relationCrudOptions, 'afterAssignSecond', {
75
+ id: entityId,
76
+ entity: data,
77
+ req,
78
+ });
59
79
  return data;
60
80
  }
61
81
  async findAllFirst(entityId, query, relationCrudOptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"relation-crud.repository.js","sourceRoot":"","sources":["../../../src/crud-operation/repository/relation-crud.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-crud.repository.js","sourceRoot":"","sources":["../../../src/crud-operation/repository/relation-crud.repository.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,9 @@ export declare class EntityCrudService<T extends ObjectLiteral> {
8
8
  create(itemData: DeepPartial<any>, req?: any, options?: EntityCrudOptions): Promise<any>;
9
9
  findAll(query: CollectionQuery, req?: any): Promise<import("../../shared").DataResponseFormat<T>>;
10
10
  findOne(id: any, req?: any): Promise<T | undefined>;
11
- update(id: string, itemData: any): Promise<T | undefined>;
12
- softDelete(id: string, req?: any): Promise<void>;
13
- restore(id: string, req?: any): Promise<void>;
11
+ update(id: string, itemData: any, req?: any, options?: EntityCrudOptions): Promise<T | undefined>;
12
+ softDelete(id: string, req?: any, options?: EntityCrudOptions): Promise<void>;
13
+ restore(id: string, req?: any, options?: EntityCrudOptions): Promise<void>;
14
14
  findAllArchived(query: CollectionQuery, req?: any): Promise<import("../../shared").DataResponseFormat<T>>;
15
15
  findOneOrFail(id: any): Promise<T>;
16
16
  }
@@ -25,14 +25,36 @@ let EntityCrudService = class EntityCrudService {
25
25
  async findOne(id, req) {
26
26
  return await this.repository.findOne(id, req);
27
27
  }
28
- async update(id, itemData) {
29
- return await this.repository.update(id, itemData);
28
+ async update(id, itemData, req, options) {
29
+ if (req === undefined && options === undefined) {
30
+ return await this.repository.update(id, itemData);
31
+ }
32
+ if (options === undefined) {
33
+ return await this.repository.update(id, itemData, req);
34
+ }
35
+ return await this.repository.update(id, itemData, req, options);
30
36
  }
31
- async softDelete(id, req) {
32
- await this.repository.softDelete(id, req);
37
+ async softDelete(id, req, options) {
38
+ if (req === undefined && options === undefined) {
39
+ await this.repository.softDelete(id);
40
+ return;
41
+ }
42
+ if (options === undefined) {
43
+ await this.repository.softDelete(id, req);
44
+ return;
45
+ }
46
+ await this.repository.softDelete(id, req, options);
33
47
  }
34
- async restore(id, req) {
35
- await this.repository.restore(id, req);
48
+ async restore(id, req, options) {
49
+ if (req === undefined && options === undefined) {
50
+ await this.repository.restore(id);
51
+ return;
52
+ }
53
+ if (options === undefined) {
54
+ await this.repository.restore(id, req);
55
+ return;
56
+ }
57
+ await this.repository.restore(id, req, options);
36
58
  }
37
59
  async findAllArchived(query, req) {
38
60
  return await this.repository.findAllArchived(query, req);
@@ -1 +1 @@
1
- {"version":3,"file":"entity-crud.service.js","sourceRoot":"","sources":["../../../src/crud-operation/service/entity-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAA4C;AAG5C,iFAA4E;AAGrE,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAC5B,YAA6B,UAAmC;QAAnC,eAAU,GAAV,UAAU,CAAyB;IAAG,CAAC;IAEpE,KAAK,CAAC,MAAM,CACV,QAA0B,EAC1B,GAAS,EACT,OAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAsB,EAAE,GAAS;QAC7C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAO,EAAE,GAAS;QAC9B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAa;QACpC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,GAAS;QACpC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,GAAS;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAsB,EAAE,GAAS;QACrD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAO;QACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAtCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAE8B,6CAAoB;GADlD,iBAAiB,CAsC7B"}
1
+ {"version":3,"file":"entity-crud.service.js","sourceRoot":"","sources":["../../../src/crud-operation/service/entity-crud.service.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ export declare class ExtraCrudService<T extends ObjectLiteral> {
10
10
  create(itemData: DeepPartial<any>, req?: any, options?: ExtraCrudOptions): Promise<any>;
11
11
  findAll(entityId: string, query: CollectionQuery, extraCrudOptions: ExtraCrudOptions, req?: any): Promise<import("../../shared").DataResponseFormat<T>>;
12
12
  findOne(id: any, req?: any): Promise<T | undefined>;
13
- update(id: string, itemData: any): Promise<T | undefined>;
14
- softDelete(id: string, req?: any): Promise<void>;
15
- restore(id: string, req?: any): Promise<void>;
13
+ update(id: string, itemData: any, req?: any, options?: ExtraCrudOptions): Promise<T | undefined>;
14
+ softDelete(id: string, req?: any, options?: ExtraCrudOptions): Promise<void>;
15
+ restore(id: string, req?: any, options?: ExtraCrudOptions): Promise<void>;
16
16
  findAllArchived(entityId: string, query: CollectionQuery, extraCrudOptions: ExtraCrudOptions, req?: any): Promise<import("../../shared").DataResponseFormat<T>>;
17
17
  findOneOrFail(id: any): Promise<T>;
18
18
  }
@@ -30,14 +30,36 @@ let ExtraCrudService = class ExtraCrudService {
30
30
  async findOne(id, req) {
31
31
  return await this.repository.findOne(id, req);
32
32
  }
33
- async update(id, itemData) {
34
- return await this.repository.update(id, itemData);
33
+ async update(id, itemData, req, options) {
34
+ if (req === undefined && options === undefined) {
35
+ return await this.repository.update(id, itemData);
36
+ }
37
+ if (options === undefined) {
38
+ return await this.repository.update(id, itemData, req);
39
+ }
40
+ return await this.repository.update(id, itemData, req, options);
35
41
  }
36
- async softDelete(id, req) {
37
- await this.repository.softDelete(id, req);
42
+ async softDelete(id, req, options) {
43
+ if (req === undefined && options === undefined) {
44
+ await this.repository.softDelete(id);
45
+ return;
46
+ }
47
+ if (options === undefined) {
48
+ await this.repository.softDelete(id, req);
49
+ return;
50
+ }
51
+ await this.repository.softDelete(id, req, options);
38
52
  }
39
- async restore(id, req) {
40
- await this.repository.restore(id, req);
53
+ async restore(id, req, options) {
54
+ if (req === undefined && options === undefined) {
55
+ await this.repository.restore(id);
56
+ return;
57
+ }
58
+ if (options === undefined) {
59
+ await this.repository.restore(id, req);
60
+ return;
61
+ }
62
+ await this.repository.restore(id, req, options);
41
63
  }
42
64
  async findAllArchived(entityId, query, extraCrudOptions, req) {
43
65
  return await this.repository.findAllArchived(entityId, query, extraCrudOptions, req);
@@ -1 +1 @@
1
- {"version":3,"file":"extra-crud.service.js","sourceRoot":"","sources":["../../../src/crud-operation/service/extra-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAoD;AAGpD,8CAAoD;AACpD,uCAAuC;AAIhC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,UAAkC,EAC1B,OAAiB;QADzB,eAAU,GAAV,UAAU,CAAwB;QAC1B,YAAO,GAAP,OAAO,CAAU;IACzC,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,QAA0B,EAC1B,GAAS,EACT,OAA0B;QAE1B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,KAAsB,EACtB,gBAAkC,EAClC,GAAS;QAET,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAClC,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAO,EAAE,GAAS;QAC9B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAa;QACpC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,GAAS;QACpC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU,EAAE,GAAS;QACjC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,KAAsB,EACtB,gBAAkC,EAClC,GAAS;QAET,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAC1C,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAO;QACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AA7DY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;qCADa,gCAAmB;GAFvC,gBAAgB,CA6D5B"}
1
+ {"version":3,"file":"extra-crud.service.js","sourceRoot":"","sources":["../../../src/crud-operation/service/extra-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAoD;AAGpD,8CAAoD;AACpD,uCAAuC;AAIhC,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACmB,UAAkC,EAC1B,OAAiB;QADzB,eAAU,GAAV,UAAU,CAAwB;QAC1B,YAAO,GAAP,OAAO,CAAU;IACzC,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,QAA0B,EAC1B,GAAS,EACT,OAA0B;QAE1B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO,CACX,QAAgB,EAChB,KAAsB,EACtB,gBAAkC,EAClC,GAAS;QAET,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAClC,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAO,EAAE,GAAS;QAC9B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,EAAU,EACV,QAAa,EACb,GAAS,EACT,OAA0B;QAE1B,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,UAAU,CACd,EAAU,EACV,GAAS,EACT,OAA0B;QAE1B,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,EAAU,EACV,GAAS,EACT,OAA0B;QAE1B,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,KAAsB,EACtB,gBAAkC,EAClC,GAAS;QAET,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAC1C,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAO;QACzB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACjD,CAAC;CACF,CAAA;AAtGY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAIR,WAAA,IAAA,eAAM,EAAC,cAAO,CAAC,CAAA;qCADa,gCAAmB;GAFvC,gBAAgB,CAsG5B"}
@@ -5,8 +5,8 @@ import { RelationCrudRepository } from '../repository';
5
5
  export declare class RelationCrudService<TEntity extends ObjectLiteral> {
6
6
  private readonly repository;
7
7
  constructor(repository: RelationCrudRepository<TEntity>);
8
- bulkSaveFirst(payload: any, relationCrudOptions: RelationCrudOptions): Promise<TEntity[]>;
9
- bulkSaveSecond(payload: any, relationCrudOptions: RelationCrudOptions): Promise<TEntity[]>;
8
+ bulkSaveFirst(payload: any, relationCrudOptions: RelationCrudOptions, req?: any): Promise<TEntity[]>;
9
+ bulkSaveSecond(payload: any, relationCrudOptions: RelationCrudOptions, req?: any): Promise<TEntity[]>;
10
10
  findAllFirst(entityId: string, query: CollectionQuery, relationCrudOptions: RelationCrudOptions): Promise<import("../../shared").DataResponseFormat<TEntity>>;
11
11
  findAllSecond(entityId: string, query: CollectionQuery, relationCrudOptions: RelationCrudOptions): Promise<import("../../shared").DataResponseFormat<TEntity>>;
12
12
  }
@@ -16,11 +16,11 @@ let RelationCrudService = class RelationCrudService {
16
16
  constructor(repository) {
17
17
  this.repository = repository;
18
18
  }
19
- async bulkSaveFirst(payload, relationCrudOptions) {
20
- return await this.repository.bulkSaveFirst(payload, relationCrudOptions);
19
+ async bulkSaveFirst(payload, relationCrudOptions, req) {
20
+ return await this.repository.bulkSaveFirst(payload, relationCrudOptions, req);
21
21
  }
22
- async bulkSaveSecond(payload, relationCrudOptions) {
23
- return await this.repository.bulkSaveSecond(payload, relationCrudOptions);
22
+ async bulkSaveSecond(payload, relationCrudOptions, req) {
23
+ return await this.repository.bulkSaveSecond(payload, relationCrudOptions, req);
24
24
  }
25
25
  async findAllFirst(entityId, query, relationCrudOptions) {
26
26
  return await this.repository.findAllFirst(entityId, query, relationCrudOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"relation-crud.service.js","sourceRoot":"","sources":["../../../src/crud-operation/service/relation-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAA4C;AAG5C,8CAAuD;AAGhD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,UAA2C;QAA3C,eAAU,GAAV,UAAU,CAAiC;IAAG,CAAC;IAE5E,KAAK,CAAC,aAAa,CAAC,OAAY,EAAE,mBAAwC;QACxE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAY,EAAE,mBAAwC;QACzE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,KAAsB,EACtB,mBAAwC;QAExC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CACvC,QAAQ,EACR,KAAK,EACL,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,KAAsB,EACtB,mBAAwC;QAExC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CACxC,QAAQ,EACR,KAAK,EACL,mBAAmB,CACpB,CAAC;IACJ,CAAC;CACF,CAAA;AAlCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAE8B,mCAAsB;GADpD,mBAAmB,CAkC/B"}
1
+ {"version":3,"file":"relation-crud.service.js","sourceRoot":"","sources":["../../../src/crud-operation/service/relation-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAA4C;AAG5C,8CAAuD;AAGhD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAA6B,UAA2C;QAA3C,eAAU,GAAV,UAAU,CAAiC;IAAG,CAAC;IAE5E,KAAK,CAAC,aAAa,CACjB,OAAY,EACZ,mBAAwC,EACxC,GAAS;QAET,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAY,EACZ,mBAAwC,EACxC,GAAS;QAET,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,QAAgB,EAChB,KAAsB,EACtB,mBAAwC;QAExC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CACvC,QAAQ,EACR,KAAK,EACL,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,QAAgB,EAChB,KAAsB,EACtB,mBAAwC;QAExC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CACxC,QAAQ,EACR,KAAK,EACL,mBAAmB,CACpB,CAAC;IACJ,CAAC;CACF,CAAA;AA1CY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAE8B,mCAAsB;GADpD,mBAAmB,CA0C/B"}
@@ -8,9 +8,9 @@ export declare class EntityCrudService<T extends ObjectLiteral> {
8
8
  create(itemData: DeepPartial<any>, req?: any, options?: EntityCrudOptions): Promise<any>;
9
9
  findAll(query: CollectionQuery, req?: any): Promise<DataResponseFormat<T>>;
10
10
  findOne(id: any, req?: any): Promise<T | undefined>;
11
- update(id: string, itemData: any): Promise<T | undefined>;
12
- softDelete(id: string, req?: any): Promise<void>;
13
- restore(id: string, req?: any): Promise<void>;
11
+ update(id: string, itemData: any, req?: any, options?: EntityCrudOptions): Promise<T | undefined>;
12
+ softDelete(id: string, req?: any, options?: EntityCrudOptions): Promise<void>;
13
+ restore(id: string, req?: any, options?: EntityCrudOptions): Promise<void>;
14
14
  findAllArchived(query: CollectionQuery, req?: any): Promise<DataResponseFormat<T>>;
15
15
  private findOneOrFail;
16
16
  private findOneOrFailWithDeleted;
@@ -23,15 +23,24 @@ let EntityCrudService = class EntityCrudService {
23
23
  this.requestContextResolver = requestContextResolver;
24
24
  }
25
25
  async create(itemData, req, options) {
26
+ var _a, _b;
27
+ const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
26
28
  await (0, shared_1.applyCreateContext)({
27
- itemData,
29
+ itemData: payload,
28
30
  req,
29
31
  options,
30
32
  resolver: this.requestContextResolver,
31
33
  });
32
- const item = this.repository.create(itemData);
34
+ await (0, shared_1.runCrudHook)(options, "beforeCreate", { itemData: payload, req });
35
+ const item = this.repository.create(payload);
33
36
  await this.repository.insert(item);
34
- return item;
37
+ const createdItem = item;
38
+ await (0, shared_1.runCrudHook)(options, "afterCreate", {
39
+ id: (_b = (_a = createdItem === null || createdItem === void 0 ? void 0 : createdItem.id) === null || _a === void 0 ? void 0 : _a.toString) === null || _b === void 0 ? void 0 : _b.call(_a),
40
+ entity: createdItem,
41
+ req,
42
+ });
43
+ return createdItem;
35
44
  }
36
45
  async findAll(query, req) {
37
46
  const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
@@ -49,20 +58,73 @@ let EntityCrudService = class EntityCrudService {
49
58
  async findOne(id, req) {
50
59
  return await this.repository.findOneBy({ id });
51
60
  }
52
- async update(id, itemData) {
61
+ async update(id, itemData, req, options) {
53
62
  const item = await this.findOneOrFail(id);
54
- await this.repository.update(item.id, itemData);
55
- return Object.assign(Object.assign({}, item), itemData);
63
+ const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
64
+ await (0, shared_1.runCrudHook)(options, "beforeUpdate", {
65
+ id,
66
+ itemData: payload,
67
+ entity: item,
68
+ req,
69
+ });
70
+ await this.repository.update(item.id, payload);
71
+ const updatedItem = Object.assign(Object.assign({}, item), payload);
72
+ await (0, shared_1.runCrudHook)(options, "afterUpdate", {
73
+ id,
74
+ entity: updatedItem,
75
+ req,
76
+ });
77
+ return updatedItem;
56
78
  }
57
- async softDelete(id, req) {
79
+ async softDelete(id, req, options) {
80
+ var _a, _b, _c;
58
81
  const item = await this.findOneOrFail(id);
59
- await this.repository.remove(item);
82
+ await (0, shared_1.runCrudHook)(options, "beforeSoftDelete", {
83
+ id,
84
+ entity: item,
85
+ req,
86
+ });
87
+ const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a : "hard";
88
+ const hasSoftDelete = !!((_c = (_b = this.repository) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.deleteDateColumn);
89
+ if (deleteMode === "soft") {
90
+ if (!hasSoftDelete) {
91
+ throw new common_1.BadRequestException("soft_delete_not_supported");
92
+ }
93
+ await this.repository.softRemove(item);
94
+ }
95
+ else if (deleteMode === "auto") {
96
+ if (hasSoftDelete) {
97
+ await this.repository.softRemove(item);
98
+ }
99
+ else {
100
+ await this.repository.remove(item);
101
+ }
102
+ }
103
+ else {
104
+ await this.repository.remove(item);
105
+ }
106
+ await (0, shared_1.runCrudHook)(options, "afterSoftDelete", {
107
+ id,
108
+ entity: item,
109
+ req,
110
+ });
60
111
  }
61
- async restore(id, req) {
112
+ async restore(id, req, options) {
113
+ var _a, _b;
114
+ if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
115
+ throw new common_1.BadRequestException("restore_not_supported");
116
+ }
117
+ await (0, shared_1.runCrudHook)(options, "beforeRestore", { id, req });
62
118
  await this.findOneOrFailWithDeleted(id);
63
119
  await this.repository.restore(id);
120
+ await (0, shared_1.runCrudHook)(options, "afterRestore", { id, req });
64
121
  }
65
122
  async findAllArchived(query, req) {
123
+ var _a, _b;
124
+ if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
125
+ throw new common_1.BadRequestException("archived_items_not_supported");
126
+ }
127
+ query.where = query.where || [];
66
128
  query.where.push([
67
129
  { column: "deletedAt", value: "", operator: collection_query_1.FilterOperators.IsNotNull },
68
130
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"entity-crud.service.js","sourceRoot":"","sources":["../../src/service/entity-crud.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-crud.service.js","sourceRoot":"","sources":["../../src/service/entity-crud.service.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,9 @@ export declare class ExtraCrudService<T extends ObjectLiteral> {
8
8
  create(itemData: DeepPartial<any>, req?: any, options?: ExtraCrudOptions): Promise<any>;
9
9
  findAll(entityId: string, query: CollectionQuery, extraCrudOptions: ExtraCrudOptions, req?: any): Promise<DataResponseFormat<T>>;
10
10
  findOne(id: any, req?: any): Promise<T | undefined>;
11
- update(id: string, itemData: any): Promise<T | undefined>;
12
- softDelete(id: string, req?: any): Promise<void>;
13
- restore(id: string, req?: any): Promise<void>;
11
+ update(id: string, itemData: any, req?: any, options?: ExtraCrudOptions): Promise<T | undefined>;
12
+ softDelete(id: string, req?: any, options?: ExtraCrudOptions): Promise<void>;
13
+ restore(id: string, req?: any, options?: ExtraCrudOptions): Promise<void>;
14
14
  findAllArchived(entityId: string, query: CollectionQuery, extraCrudOptions: ExtraCrudOptions, req?: any): Promise<DataResponseFormat<T>>;
15
15
  private findOneOrFail;
16
16
  private findOneOrFailWithDeleted;
@@ -23,15 +23,24 @@ let ExtraCrudService = class ExtraCrudService {
23
23
  this.requestContextResolver = requestContextResolver;
24
24
  }
25
25
  async create(itemData, req, options) {
26
+ var _a, _b;
27
+ const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
26
28
  await (0, shared_1.applyCreateContext)({
27
- itemData,
29
+ itemData: payload,
28
30
  req,
29
31
  options,
30
32
  resolver: this.requestContextResolver,
31
33
  });
32
- const item = this.repository.create(itemData);
34
+ await (0, shared_1.runCrudHook)(options, "beforeCreate", { itemData: payload, req });
35
+ const item = this.repository.create(payload);
33
36
  await this.repository.insert(item);
34
- return item;
37
+ const createdItem = item;
38
+ await (0, shared_1.runCrudHook)(options, "afterCreate", {
39
+ id: (_b = (_a = createdItem === null || createdItem === void 0 ? void 0 : createdItem.id) === null || _a === void 0 ? void 0 : _a.toString) === null || _b === void 0 ? void 0 : _b.call(_a),
40
+ entity: createdItem,
41
+ req,
42
+ });
43
+ return createdItem;
35
44
  }
36
45
  async findAll(entityId, query, extraCrudOptions, req) {
37
46
  const entityIdName = extraCrudOptions.entityIdName;
@@ -57,21 +66,74 @@ let ExtraCrudService = class ExtraCrudService {
57
66
  async findOne(id, req) {
58
67
  return await this.repository.findOneBy({ id });
59
68
  }
60
- async update(id, itemData) {
69
+ async update(id, itemData, req, options) {
61
70
  const item = await this.findOneOrFail(id);
62
- await this.repository.update(item.id, itemData);
63
- return Object.assign(Object.assign({}, item), itemData);
71
+ const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
72
+ await (0, shared_1.runCrudHook)(options, "beforeUpdate", {
73
+ id,
74
+ itemData: payload,
75
+ entity: item,
76
+ req,
77
+ });
78
+ await this.repository.update(item.id, payload);
79
+ const updatedItem = Object.assign(Object.assign({}, item), payload);
80
+ await (0, shared_1.runCrudHook)(options, "afterUpdate", {
81
+ id,
82
+ entity: updatedItem,
83
+ req,
84
+ });
85
+ return updatedItem;
64
86
  }
65
- async softDelete(id, req) {
87
+ async softDelete(id, req, options) {
88
+ var _a, _b, _c;
66
89
  const item = await this.findOneOrFail(id);
67
- await this.repository.remove(item);
90
+ await (0, shared_1.runCrudHook)(options, "beforeSoftDelete", {
91
+ id,
92
+ entity: item,
93
+ req,
94
+ });
95
+ const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a : "hard";
96
+ const hasSoftDelete = !!((_c = (_b = this.repository) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.deleteDateColumn);
97
+ if (deleteMode === "soft") {
98
+ if (!hasSoftDelete) {
99
+ throw new common_1.BadRequestException("soft_delete_not_supported");
100
+ }
101
+ await this.repository.softRemove(item);
102
+ }
103
+ else if (deleteMode === "auto") {
104
+ if (hasSoftDelete) {
105
+ await this.repository.softRemove(item);
106
+ }
107
+ else {
108
+ await this.repository.remove(item);
109
+ }
110
+ }
111
+ else {
112
+ await this.repository.remove(item);
113
+ }
114
+ await (0, shared_1.runCrudHook)(options, "afterSoftDelete", {
115
+ id,
116
+ entity: item,
117
+ req,
118
+ });
68
119
  }
69
- async restore(id, req) {
120
+ async restore(id, req, options) {
121
+ var _a, _b;
122
+ if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
123
+ throw new common_1.BadRequestException("restore_not_supported");
124
+ }
125
+ await (0, shared_1.runCrudHook)(options, "beforeRestore", { id, req });
70
126
  await this.findOneOrFailWithDeleted(id);
71
127
  await this.repository.restore(id);
128
+ await (0, shared_1.runCrudHook)(options, "afterRestore", { id, req });
72
129
  }
73
130
  async findAllArchived(entityId, query, extraCrudOptions, req) {
131
+ var _a, _b;
132
+ if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
133
+ throw new common_1.BadRequestException("archived_items_not_supported");
134
+ }
74
135
  const entityIdName = extraCrudOptions.entityIdName;
136
+ query.where = query.where || [];
75
137
  query.where.push([
76
138
  {
77
139
  column: entityIdName,
@@ -1 +1 @@
1
- {"version":3,"file":"extra-crud.service.js","sourceRoot":"","sources":["../../src/service/extra-crud.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extra-crud.service.js","sourceRoot":"","sources":["../../src/service/extra-crud.service.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ import { DataResponseFormat, RelationCrudOptions } from "../shared";
4
4
  export declare class RelationCrudService<TEntity extends ObjectLiteral> {
5
5
  private readonly repository;
6
6
  constructor(repository: Repository<TEntity>);
7
- bulkSaveFirst(payload: any, relationCrudOptions: RelationCrudOptions): Promise<TEntity[]>;
8
- bulkSaveSecond(payload: any, relationCrudOptions: RelationCrudOptions): Promise<TEntity[]>;
7
+ bulkSaveFirst(payload: any, relationCrudOptions: RelationCrudOptions, req?: any): Promise<TEntity[]>;
8
+ bulkSaveSecond(payload: any, relationCrudOptions: RelationCrudOptions, req?: any): Promise<TEntity[]>;
9
9
  findAllFirst(entityId: string, query: CollectionQuery, relationCrudOptions: RelationCrudOptions): Promise<DataResponseFormat<TEntity>>;
10
10
  findAllSecond(entityId: string, query: CollectionQuery, relationCrudOptions: RelationCrudOptions): Promise<DataResponseFormat<TEntity>>;
11
11
  getData(entityId: string, entityIdName: string, include: string, filterInclude: string, query: CollectionQuery): Promise<DataResponseFormat<TEntity>>;
@@ -18,7 +18,7 @@ let RelationCrudService = class RelationCrudService {
18
18
  constructor(repository) {
19
19
  this.repository = repository;
20
20
  }
21
- async bulkSaveFirst(payload, relationCrudOptions) {
21
+ async bulkSaveFirst(payload, relationCrudOptions, req) {
22
22
  const firstEntityIdName = relationCrudOptions.firstEntityIdName;
23
23
  const secondEntityIdName = relationCrudOptions.secondEntityIdName;
24
24
  const include = relationCrudOptions.firstInclude;
@@ -33,12 +33,22 @@ let RelationCrudService = class RelationCrudService {
33
33
  });
34
34
  const deleteCondition = {};
35
35
  deleteCondition[firstEntityIdName] = entityId;
36
+ await (0, shared_1.runCrudHook)(relationCrudOptions, "beforeAssignFirst", {
37
+ id: entityId,
38
+ itemData: payload,
39
+ req,
40
+ });
36
41
  await this.repository.delete(deleteCondition);
37
42
  const data = this.repository.create(parsedPayload);
38
43
  await this.repository.insert(data);
44
+ await (0, shared_1.runCrudHook)(relationCrudOptions, "afterAssignFirst", {
45
+ id: entityId,
46
+ entity: data,
47
+ req,
48
+ });
39
49
  return data;
40
50
  }
41
- async bulkSaveSecond(payload, relationCrudOptions) {
51
+ async bulkSaveSecond(payload, relationCrudOptions, req) {
42
52
  const firstEntityIdName = relationCrudOptions.firstEntityIdName;
43
53
  const secondEntityIdName = relationCrudOptions.secondEntityIdName;
44
54
  const include = relationCrudOptions.secondInclude;
@@ -53,9 +63,19 @@ let RelationCrudService = class RelationCrudService {
53
63
  });
54
64
  const deleteCondition = {};
55
65
  deleteCondition[secondEntityIdName] = entityId;
66
+ await (0, shared_1.runCrudHook)(relationCrudOptions, "beforeAssignSecond", {
67
+ id: entityId,
68
+ itemData: payload,
69
+ req,
70
+ });
56
71
  await this.repository.delete(deleteCondition);
57
72
  const data = this.repository.create(parsedPayload);
58
73
  await this.repository.insert(data);
74
+ await (0, shared_1.runCrudHook)(relationCrudOptions, "afterAssignSecond", {
75
+ id: entityId,
76
+ entity: data,
77
+ req,
78
+ });
59
79
  return data;
60
80
  }
61
81
  async findAllFirst(entityId, query, relationCrudOptions) {