@ubs-platform/crud-base 5.8.0 → 6.0.0

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.
@@ -1,5 +1,7 @@
1
1
  import { BaseCrudService } from '@ubs-platform/crud-base';
2
2
  import { SearchRequest } from '@ubs-platform/crud-base-common';
3
+ import { UserAuthBackendDTO } from '@ubs-platform/users-common';
4
+ import { Optional } from '@ubs-platform/crud-base-common/utils';
3
5
  export type RoleAuthorizationConfigKey = 'EDIT' | 'ADD' | 'REMOVE' | 'GETALL' | 'GETID' | 'ALL';
4
6
  export type RoleAuthorizationDetailed = {
5
7
  needsAuthenticated?: boolean;
@@ -15,15 +17,19 @@ export declare const BaseCrudControllerGenerator: <MODEL, INPUT extends {
15
17
  _id?: any;
16
18
  }, OUTPUT, SEARCH>(r: ControllerConfiguration) => {
17
19
  new (servicex: BaseCrudService<MODEL, INPUT, OUTPUT, SEARCH>): {
18
- fetchAll(s?: SEARCH): Promise<OUTPUT[]>;
19
- search(s: SEARCH & SearchRequest): Promise<import("@ubs-platform/crud-base-common").SearchResult<OUTPUT>>;
20
+ fetchAll(s?: SEARCH, user?: UserAuthBackendDTO): Promise<OUTPUT[]>;
21
+ search(s: SEARCH & SearchRequest, user?: UserAuthBackendDTO): Promise<import("@ubs-platform/crud-base-common").SearchResult<OUTPUT>>;
20
22
  fetchOne({ id }: {
21
23
  id: any;
22
- }): Promise<OUTPUT>;
23
- add(body: INPUT): Promise<OUTPUT>;
24
- edit(body: INPUT): Promise<OUTPUT>;
24
+ }, user?: UserAuthBackendDTO): Promise<OUTPUT>;
25
+ add(body: INPUT, user?: UserAuthBackendDTO): Promise<OUTPUT>;
26
+ edit(body: INPUT, user?: UserAuthBackendDTO): Promise<OUTPUT>;
25
27
  remove({ id }: {
26
28
  id: any;
27
- }): Promise<OUTPUT>;
29
+ }, user?: UserAuthBackendDTO): Promise<OUTPUT>;
30
+ checkUser(operation: "ADD" | "EDIT" | "REMOVE" | "GETALL" | "GETID", user: Optional<UserAuthBackendDTO>, queriesAndPaths: Optional<{
31
+ [key: string]: any;
32
+ }>, body: Optional<INPUT>): Promise<void>;
33
+ manipulateSearch(user: Optional<UserAuthBackendDTO>, queriesAndPaths: Optional<SEARCH>): any;
28
34
  };
29
35
  };
@@ -62,74 +62,96 @@ const BaseCrudControllerGenerator = (r) => {
62
62
  constructor(servicex) {
63
63
  service = servicex;
64
64
  }
65
- async fetchAll(s) {
66
- return await service.fetchAll(s);
65
+ async fetchAll(s, user) {
66
+ const manipulatedSearch = this.manipulateSearch(user, s);
67
+ return await service.fetchAll(manipulatedSearch, user);
67
68
  }
68
- async search(s) {
69
- return await service.searchPagination(s);
69
+ async search(s, user) {
70
+ const manipulatedSearch = this.manipulateSearch(user, s);
71
+ return await service.searchPagination(manipulatedSearch, user);
70
72
  }
71
- async fetchOne({ id }) {
72
- return await service.fetchOne(id);
73
+ async fetchOne({ id }, user) {
74
+ return await service.fetchOne(id, user);
73
75
  }
74
- async add(body) {
75
- return await service.create(body);
76
+ async add(body, user) {
77
+ await this.checkUser('ADD', user, null, body);
78
+ return await service.create(body, user);
76
79
  }
77
- async edit(body) {
80
+ async edit(body, user) {
78
81
  if (body._id == null) {
79
82
  throw new common_1.NotFoundException();
80
83
  }
81
- return await service.edit(body);
84
+ await this.checkUser('EDIT', user, null, body);
85
+ return await service.edit(body, user);
82
86
  }
83
- async remove({ id }) {
84
- return await service.remove(id);
87
+ async remove({ id }, user) {
88
+ await this.checkUser('REMOVE', user, { id }, null);
89
+ return await service.remove(id, user);
90
+ }
91
+ async checkUser(operation, user, queriesAndPaths, body) {
92
+ }
93
+ manipulateSearch(user, queriesAndPaths) {
94
+ return queriesAndPaths;
85
95
  }
86
96
  }
87
97
  __decorate([
88
98
  RoleConfig('GETALL'),
89
99
  (0, common_1.Get)(),
100
+ (0, common_1.UseGuards)(users_microservice_helper_1.UserIntercept),
90
101
  __param(0, (0, common_1.Query)()),
102
+ __param(1, (0, users_microservice_helper_1.CurrentUser)()),
91
103
  __metadata("design:type", Function),
92
- __metadata("design:paramtypes", [Object]),
104
+ __metadata("design:paramtypes", [Object, Object]),
93
105
  __metadata("design:returntype", Promise)
94
106
  ], ControllerClass.prototype, "fetchAll", null);
95
107
  __decorate([
96
108
  RoleConfig('GETALL'),
97
109
  (0, common_1.Get)('_search'),
110
+ (0, common_1.UseGuards)(users_microservice_helper_1.UserIntercept),
98
111
  __param(0, (0, common_1.Query)()),
112
+ __param(1, (0, users_microservice_helper_1.CurrentUser)()),
99
113
  __metadata("design:type", Function),
100
- __metadata("design:paramtypes", [Object]),
114
+ __metadata("design:paramtypes", [Object, Object]),
101
115
  __metadata("design:returntype", Promise)
102
116
  ], ControllerClass.prototype, "search", null);
103
117
  __decorate([
104
118
  (0, common_1.Get)('/:id'),
105
119
  RoleConfig('GETID'),
120
+ (0, common_1.UseGuards)(users_microservice_helper_1.UserIntercept),
106
121
  __param(0, (0, common_1.Param)()),
122
+ __param(1, (0, users_microservice_helper_1.CurrentUser)()),
107
123
  __metadata("design:type", Function),
108
- __metadata("design:paramtypes", [Object]),
124
+ __metadata("design:paramtypes", [Object, Object]),
109
125
  __metadata("design:returntype", Promise)
110
126
  ], ControllerClass.prototype, "fetchOne", null);
111
127
  __decorate([
112
128
  RoleConfig('ADD'),
113
129
  (0, common_1.Post)(),
130
+ (0, common_1.UseGuards)(users_microservice_helper_1.UserIntercept),
114
131
  __param(0, (0, common_1.Body)()),
132
+ __param(1, (0, users_microservice_helper_1.CurrentUser)()),
115
133
  __metadata("design:type", Function),
116
- __metadata("design:paramtypes", [Object]),
134
+ __metadata("design:paramtypes", [Object, Object]),
117
135
  __metadata("design:returntype", Promise)
118
136
  ], ControllerClass.prototype, "add", null);
119
137
  __decorate([
120
138
  RoleConfig('EDIT'),
121
139
  (0, common_1.Put)(),
140
+ (0, common_1.UseGuards)(users_microservice_helper_1.UserIntercept),
122
141
  __param(0, (0, common_1.Body)()),
142
+ __param(1, (0, users_microservice_helper_1.CurrentUser)()),
123
143
  __metadata("design:type", Function),
124
- __metadata("design:paramtypes", [Object]),
144
+ __metadata("design:paramtypes", [Object, Object]),
125
145
  __metadata("design:returntype", Promise)
126
146
  ], ControllerClass.prototype, "edit", null);
127
147
  __decorate([
128
148
  (0, common_1.Delete)(':id'),
129
149
  RoleConfig('REMOVE'),
150
+ (0, common_1.UseGuards)(users_microservice_helper_1.UserIntercept),
130
151
  __param(0, (0, common_1.Param)()),
152
+ __param(1, (0, users_microservice_helper_1.CurrentUser)()),
131
153
  __metadata("design:type", Function),
132
- __metadata("design:paramtypes", [Object]),
154
+ __metadata("design:paramtypes", [Object, Object]),
133
155
  __metadata("design:returntype", Promise)
134
156
  ], ControllerClass.prototype, "remove", null);
135
157
  return ControllerClass;
@@ -1 +1 @@
1
- {"version":3,"file":"base-crud-controller.js","sourceRoot":"","sources":["../../../../../libs/crud-base/src/base-crud-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-crud-controller.js","sourceRoot":"","sources":["../../../../../libs/crud-base/src/base-crud-controller.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { SearchRequest, SearchResult } from '@ubs-platform/crud-base-common';
2
2
  import { FilterQuery, Model, ObjectId } from 'mongoose';
3
3
  import { BaseCrudKlass } from './base-crud-klass';
4
+ import { UserAuthBackendDTO } from '@ubs-platform/users-common';
4
5
  export declare abstract class BaseCrudService<MODEL, INPUT extends {
5
6
  _id?: any;
6
7
  }, OUTPUT, SEARCH> extends BaseCrudKlass {
@@ -8,13 +9,14 @@ export declare abstract class BaseCrudService<MODEL, INPUT extends {
8
9
  constructor(m: Model<MODEL>);
9
10
  abstract toOutput(m: MODEL): Promise<OUTPUT> | OUTPUT;
10
11
  abstract moveIntoModel(model: MODEL, i: INPUT): Promise<MODEL> | MODEL;
11
- abstract searchParams(s?: Partial<SEARCH>): FilterQuery<MODEL>;
12
- convertAndReturnTheList(list: MODEL[]): Promise<OUTPUT[]>;
13
- searchPagination(searchAndPagination?: SEARCH & SearchRequest): Promise<SearchResult<OUTPUT>>;
14
- fetchAll(s?: Partial<SEARCH>): Promise<OUTPUT[]>;
15
- fetchOne(id: string | ObjectId): Promise<OUTPUT>;
16
- create(input: INPUT): Promise<OUTPUT>;
17
- edit(input: INPUT): Promise<OUTPUT>;
18
- remove(id: string | ObjectId): Promise<OUTPUT>;
19
- afterCreate(m: OUTPUT): Promise<void>;
12
+ abstract searchParams(s?: Partial<SEARCH>): Promise<FilterQuery<MODEL>>;
13
+ convertAndReturnTheList(list: MODEL[], user?: UserAuthBackendDTO): Promise<OUTPUT[]>;
14
+ searchPagination(searchAndPagination?: SEARCH & SearchRequest, user?: UserAuthBackendDTO): Promise<SearchResult<OUTPUT>>;
15
+ fetchAll(s?: Partial<SEARCH>, user?: UserAuthBackendDTO): Promise<OUTPUT[]>;
16
+ fetchOne(id: string | ObjectId, user?: UserAuthBackendDTO): Promise<OUTPUT>;
17
+ create(input: INPUT, user?: UserAuthBackendDTO): Promise<OUTPUT>;
18
+ edit(input: INPUT, user?: UserAuthBackendDTO): Promise<OUTPUT>;
19
+ remove(id: string | ObjectId, user?: UserAuthBackendDTO): Promise<OUTPUT>;
20
+ afterCreate(m: OUTPUT, user?: UserAuthBackendDTO): Promise<void>;
21
+ beforeCreateOrEdit(i: MODEL, mode: 'EDIT' | 'CREATE', user?: UserAuthBackendDTO): Promise<void>;
20
22
  }
@@ -8,7 +8,7 @@ class BaseCrudService extends base_crud_klass_1.BaseCrudKlass {
8
8
  super();
9
9
  this.m = m;
10
10
  }
11
- async convertAndReturnTheList(list) {
11
+ async convertAndReturnTheList(list, user) {
12
12
  const outputList = [];
13
13
  for (let index = 0; index < list.length; index++) {
14
14
  const item = list[index];
@@ -16,9 +16,9 @@ class BaseCrudService extends base_crud_klass_1.BaseCrudKlass {
16
16
  }
17
17
  return outputList;
18
18
  }
19
- async searchPagination(searchAndPagination) {
19
+ async searchPagination(searchAndPagination, user) {
20
20
  const page = searchAndPagination?.page || 0, size = searchAndPagination?.size || 10;
21
- let s = this.searchParams(searchAndPagination);
21
+ let s = await this.searchParams(searchAndPagination);
22
22
  let sort;
23
23
  if (searchAndPagination?.sortBy && searchAndPagination.sortRotation) {
24
24
  sort = {};
@@ -28,33 +28,36 @@ class BaseCrudService extends base_crud_klass_1.BaseCrudKlass {
28
28
  $match: s,
29
29
  })).mapAsync((a) => this.toOutput(a));
30
30
  }
31
- async fetchAll(s) {
32
- const list = await this.m.find(this.searchParams(s)).exec();
33
- return await this.convertAndReturnTheList(list);
31
+ async fetchAll(s, user) {
32
+ const list = await this.m.find(await this.searchParams(s)).exec();
33
+ return await this.convertAndReturnTheList(list, user);
34
34
  }
35
- async fetchOne(id) {
35
+ async fetchOne(id, user) {
36
36
  return this.toOutput((await this.m.findById(id)));
37
37
  }
38
- async create(input) {
38
+ async create(input, user) {
39
39
  let newModel = new this.m();
40
40
  await this.moveIntoModel(newModel, input);
41
+ await this.beforeCreateOrEdit(newModel, 'CREATE', user);
41
42
  await newModel.save();
42
43
  const out = await this.toOutput(newModel);
43
- await this.afterCreate(out);
44
+ await this.afterCreate(out, user);
44
45
  return out;
45
46
  }
46
- async edit(input) {
47
+ async edit(input, user) {
47
48
  const newModelFirst = await this.m.findById(input._id);
48
49
  const newModel = await this.moveIntoModel(newModelFirst, input);
50
+ await this.beforeCreateOrEdit(newModel, 'EDIT', user);
49
51
  await newModel.save();
50
52
  return this.toOutput(newModel);
51
53
  }
52
- async remove(id) {
54
+ async remove(id, user) {
53
55
  let ac = await this.m.findById(id);
54
56
  await ac.deleteOne();
55
57
  return this.toOutput(ac);
56
58
  }
57
- async afterCreate(m) { }
59
+ async afterCreate(m, user) { }
60
+ async beforeCreateOrEdit(i, mode, user) { }
58
61
  }
59
62
  exports.BaseCrudService = BaseCrudService;
60
63
  //# sourceMappingURL=base-crud-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-crud-service.js","sourceRoot":"","sources":["../../../../../libs/crud-base/src/base-crud-service.ts"],"names":[],"mappings":";;;AAIA,uDAAkD;AAClD,oDAAgD;AAEhD,MAAsB,eAKpB,SAAQ,+BAAa;IACnB,YAAmB,CAAe;QAC9B,KAAK,EAAE,CAAC;QADO,MAAC,GAAD,CAAC,CAAc;IAElC,CAAC;IAMD,KAAK,CAAC,uBAAuB,CAAC,IAAa;QACvC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAClB,mBAA4C;QAE5C,MAAM,IAAI,GAAG,mBAAmB,EAAE,IAAI,IAAI,CAAC,EACvC,IAAI,GAAG,mBAAmB,EAAE,IAAI,IAAI,EAAE,CAAC;QAE3C,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC;QACT,IAAI,mBAAmB,EAAE,MAAM,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC;YAClE,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAAC,YAAY,CAAC;QACxE,CAAC;QACD,OAAO,CACH,MAAM,wBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;YACnD,MAAM,EAAE,CAAC;SACZ,CAAC,CACL,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,CAAmB;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAqB;QAChC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAU,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAY;QACrB,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC;QAE5B,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE1C,MAAO,QAAiD,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAY;QACnB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACrC,aAAsB,EACtB,KAAK,CACR,CAAC;QAEF,MAAO,QAAiD,CAAC,IAAI,EAAE,CAAC;QAEhE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAiB,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAqB;QAC9B,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;QACpC,MAAM,EAAG,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAW,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,CAAS,IAAG,CAAC;CAClC;AAlFD,0CAkFC"}
1
+ {"version":3,"file":"base-crud-service.js","sourceRoot":"","sources":["../../../../../libs/crud-base/src/base-crud-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@ubs-platform/crud-base","repository":{"url":"https://github.com/ubs-platform/ubs-mona-mr"},"homepage":"https://github.com/ubs-platform/ubs-mona-mr","version":"5.8.0","iksir":{"type":"LIBRARY","libraryMode":"PEER","buildSubFolder":""},"peerDependencies":{"@nestjs/common":"11.0.16","@ubs-platform/users-microservice-helper":"5.8.0","@ubs-platform/users-roles":"5.8.0","@ubs-platform/crud-base-common":"5.8.0"}}
1
+ {"name":"@ubs-platform/crud-base","repository":{"url":"https://github.com/ubs-platform/ubs-mona-mr"},"homepage":"https://github.com/ubs-platform/ubs-mona-mr","version":"6.0.0","iksir":{"type":"LIBRARY","libraryMode":"PEER","buildSubFolder":""},"peerDependencies":{"@nestjs/common":"11.0.16","@ubs-platform/users-microservice-helper":"6.0.0","@ubs-platform/users-roles":"6.0.0","@ubs-platform/crud-base-common":"6.0.0"}}