@minimaltech/node-infra 0.3.13 → 0.3.15

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 (120) hide show
  1. package/dist/base/applications/base.application.js +3 -1
  2. package/dist/base/applications/base.application.js.map +1 -1
  3. package/dist/base/controllers/common.js.map +1 -1
  4. package/dist/base/controllers/crud.controller.d.ts +8 -0
  5. package/dist/base/controllers/crud.controller.js +68 -33
  6. package/dist/base/controllers/crud.controller.js.map +1 -1
  7. package/dist/base/controllers/index.d.ts +2 -1
  8. package/dist/base/controllers/index.js +2 -1
  9. package/dist/base/controllers/index.js.map +1 -1
  10. package/dist/base/controllers/kv.controller.js +1 -1
  11. package/dist/base/controllers/kv.controller.js.map +1 -1
  12. package/dist/base/controllers/relational.controller.d.ts +15 -4
  13. package/dist/base/controllers/relational.controller.js +177 -102
  14. package/dist/base/controllers/relational.controller.js.map +1 -1
  15. package/dist/base/controllers/service-crud.controller.d.ts +54 -0
  16. package/dist/base/controllers/service-crud.controller.js +413 -0
  17. package/dist/base/controllers/service-crud.controller.js.map +1 -0
  18. package/dist/base/index.d.ts +1 -1
  19. package/dist/base/index.js +1 -1
  20. package/dist/base/index.js.map +1 -1
  21. package/dist/base/repositories/base.repository.js.map +1 -1
  22. package/dist/base/repositories/searchable-tz-crud.repository.js.map +1 -1
  23. package/dist/base/repositories/tz-crud.repository.js.map +1 -1
  24. package/dist/base/services/base-crud.service.d.ts +23 -0
  25. package/dist/base/services/base-crud.service.js +67 -0
  26. package/dist/base/services/base-crud.service.js.map +1 -0
  27. package/dist/base/{base.service.d.ts → services/base.service.d.ts} +2 -2
  28. package/dist/base/{base.service.js → services/base.service.js} +1 -1
  29. package/dist/base/services/base.service.js.map +1 -0
  30. package/dist/base/services/index.d.ts +2 -0
  31. package/dist/base/services/index.js +19 -0
  32. package/dist/base/services/index.js.map +1 -0
  33. package/dist/common/constants.js +6 -1
  34. package/dist/common/constants.js.map +1 -1
  35. package/dist/common/statuses.js +7 -1
  36. package/dist/common/statuses.js.map +1 -1
  37. package/dist/common/types.d.ts +30 -1
  38. package/dist/components/authenticate/component.js +5 -2
  39. package/dist/components/authenticate/component.js.map +1 -1
  40. package/dist/components/authenticate/controllers/auth.controller.js +1 -1
  41. package/dist/components/authenticate/controllers/auth.controller.js.map +1 -1
  42. package/dist/components/authenticate/controllers/oauth2.controller.js.map +1 -1
  43. package/dist/components/authenticate/middleware.js.map +1 -1
  44. package/dist/components/authenticate/oauth2-handlers/authorization-code.handler.js.map +1 -1
  45. package/dist/components/authenticate/oauth2-handlers/base.js +13 -2
  46. package/dist/components/authenticate/oauth2-handlers/base.js.map +1 -1
  47. package/dist/components/authenticate/oauth2-handlers/client-credential.handler.js.map +1 -1
  48. package/dist/components/authenticate/oauth2-handlers/password.handler.js.map +1 -1
  49. package/dist/components/authenticate/services/basic-token.service.d.ts +1 -1
  50. package/dist/components/authenticate/services/basic-token.service.js +2 -2
  51. package/dist/components/authenticate/services/basic-token.service.js.map +1 -1
  52. package/dist/components/authenticate/services/jwt-token.service.d.ts +1 -1
  53. package/dist/components/authenticate/services/jwt-token.service.js +2 -2
  54. package/dist/components/authenticate/services/jwt-token.service.js.map +1 -1
  55. package/dist/components/authenticate/services/oauth2.service.d.ts +1 -1
  56. package/dist/components/authenticate/services/oauth2.service.js +2 -2
  57. package/dist/components/authenticate/services/oauth2.service.js.map +1 -1
  58. package/dist/components/authenticate/services/oauth2.strategy.js.map +1 -1
  59. package/dist/components/authorize/adapters/base.adapter.js +5 -1
  60. package/dist/components/authorize/adapters/base.adapter.js.map +1 -1
  61. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js +2 -6
  62. package/dist/components/authorize/adapters/casbin-postgres-adapter.helper.js.map +1 -1
  63. package/dist/components/authorize/common/keys.js.map +1 -1
  64. package/dist/components/authorize/component.js +4 -1
  65. package/dist/components/authorize/component.js.map +1 -1
  66. package/dist/components/authorize/decorators/index.js.map +1 -1
  67. package/dist/components/authorize/interceptor.js +4 -2
  68. package/dist/components/authorize/interceptor.js.map +1 -1
  69. package/dist/components/authorize/provider.js.map +1 -1
  70. package/dist/components/authorize/repositories/authorize.repository.js.map +1 -1
  71. package/dist/components/authorize/services/enforcer.service.js.map +1 -1
  72. package/dist/components/authorize/services/generator.service.js +4 -2
  73. package/dist/components/authorize/services/generator.service.js.map +1 -1
  74. package/dist/components/crash-report/common/keys.js +4 -1
  75. package/dist/components/crash-report/common/keys.js.map +1 -1
  76. package/dist/components/crash-report/component.js.map +1 -1
  77. package/dist/components/crash-report/providers/provider.js.map +1 -1
  78. package/dist/components/crash-report/services/mt-crash-report.service.js +1 -1
  79. package/dist/components/crash-report/services/mt-crash-report.service.js.map +1 -1
  80. package/dist/components/grpc/components/server.component.js +1 -1
  81. package/dist/components/grpc/components/server.component.js.map +1 -1
  82. package/dist/components/grpc/decorators/index.js.map +1 -1
  83. package/dist/components/grpc/helpers/grpc-client.js +1 -1
  84. package/dist/components/grpc/helpers/grpc-client.js.map +1 -1
  85. package/dist/components/grpc/helpers/grpc-server.js.map +1 -1
  86. package/dist/components/socket-io/component.js.map +1 -1
  87. package/dist/components/socket-io/helpers/socket-io-client.helper.js.map +1 -1
  88. package/dist/components/socket-io/helpers/socket-io-server.helper.js +4 -1
  89. package/dist/components/socket-io/helpers/socket-io-server.helper.js.map +1 -1
  90. package/dist/components/static-asset/component.js.map +1 -1
  91. package/dist/components/static-asset/controllers/asset.controller.js.map +1 -1
  92. package/dist/components/static-asset/controllers/resource.controller.js.map +1 -1
  93. package/dist/helpers/crypto/algorithms/aes.algorithm.js.map +1 -1
  94. package/dist/helpers/crypto/algorithms/base.algorithm.js +4 -1
  95. package/dist/helpers/crypto/algorithms/base.algorithm.js.map +1 -1
  96. package/dist/helpers/database/query-builder.helper.js.map +1 -1
  97. package/dist/helpers/logger/application-logger.js +8 -1
  98. package/dist/helpers/logger/application-logger.js.map +1 -1
  99. package/dist/helpers/logger/default-logger.js.map +1 -1
  100. package/dist/helpers/network/network-tcp-client.helper.js.map +1 -1
  101. package/dist/helpers/network/network-udp-client.helper.js.map +1 -1
  102. package/dist/helpers/network/network.helper.js.map +1 -1
  103. package/dist/helpers/queue/mqtt.helper.js.map +1 -1
  104. package/dist/helpers/redis.helper.js.map +1 -1
  105. package/dist/helpers/storage/minio.helper.js.map +1 -1
  106. package/dist/helpers/testing/test-case.js.map +1 -1
  107. package/dist/helpers/testing/test-handler.js.map +1 -1
  108. package/dist/interceptors/content-range.interceptor.js +1 -1
  109. package/dist/interceptors/content-range.interceptor.js.map +1 -1
  110. package/dist/middlewares/request-spy.middleware.js.map +1 -1
  111. package/dist/migrations/handler.js.map +1 -1
  112. package/dist/mixins/object-search.mixin.js.map +1 -1
  113. package/dist/mixins/user-audit-v2.mixin.js +1 -1
  114. package/dist/mixins/user-audit-v2.mixin.js.map +1 -1
  115. package/dist/utilities/date.utility.js.map +1 -1
  116. package/dist/utilities/parse.utility.js +6 -1
  117. package/dist/utilities/parse.utility.js.map +1 -1
  118. package/dist/utilities/request.utility.js.map +1 -1
  119. package/package.json +1 -1
  120. package/dist/base/base.service.js.map +0 -1
@@ -25,19 +25,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.defineRelationCrudController = exports.defineAssociateController = exports.defineRelationViewController = void 0;
28
+ const core_1 = require("@loopback/core");
28
29
  const repository_1 = require("@loopback/repository");
29
30
  const rest_1 = require("@loopback/rest");
30
31
  const get_1 = __importDefault(require("lodash/get"));
31
32
  const common_1 = require("../../common");
32
33
  const utilities_1 = require("../../utilities");
33
34
  const common_2 = require("./common");
35
+ const security_1 = require("@loopback/security");
34
36
  // --------------------------------------------------------------------------------------------------------------
35
37
  const defineRelationViewController = (opts) => {
36
- const { baseClass, relationType, relationName, defaultLimit = common_1.App.DEFAULT_QUERY_LIMIT, endPoint = '', schema } = opts;
38
+ const { baseClass, entities, relationType, relationName, defaultLimit = common_1.App.DEFAULT_QUERY_LIMIT, endPoint = '', schema, } = opts;
37
39
  const restPath = `/{id}/${endPoint ? endPoint : relationName}`;
38
40
  const BaseClass = baseClass !== null && baseClass !== void 0 ? baseClass : common_2.BaseController;
39
41
  class ViewController extends BaseClass {
40
- constructor(sourceRepository, targetRepository) {
42
+ constructor(sourceRepository, targetRepository, getCurrentUser) {
41
43
  super({ scope: `ViewController.${relationName}` });
42
44
  this.relation = {
43
45
  name: relationName,
@@ -58,66 +60,134 @@ const defineRelationViewController = (opts) => {
58
60
  });
59
61
  }
60
62
  this.targetRepository = targetRepository;
63
+ if (getCurrentUser && typeof getCurrentUser !== 'function') {
64
+ throw (0, utilities_1.getError)({
65
+ statusCode: 500,
66
+ message: '[defineRelationViewController] Invalid getCurrentUser type | Please check again the 3rd parameter in constructor!',
67
+ });
68
+ }
69
+ this.getCurrentUser = getCurrentUser;
61
70
  }
62
71
  // -----------------------------------------------------------------------------------------------
63
- find(id, filter) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
66
- switch (relationType) {
67
- case common_1.EntityRelations.BELONGS_TO: {
68
- return ref;
69
- }
70
- case common_1.EntityRelations.HAS_ONE: {
71
- return ref.get((0, common_2.applyLimit)(filter));
72
- }
73
- case common_1.EntityRelations.HAS_MANY: {
74
- return ref.find((0, common_2.applyLimit)(filter));
75
- }
76
- case common_1.EntityRelations.HAS_MANY_THROUGH: {
77
- return ref.find((0, common_2.applyLimit)(filter));
78
- }
79
- default: {
80
- return Promise.resolve([]);
81
- }
72
+ _getBelongsToRepository(sourceId) {
73
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(sourceId);
74
+ return ref;
75
+ }
76
+ _getHasOneRepository(sourceId) {
77
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(sourceId);
78
+ return ref;
79
+ }
80
+ _getHasManyRepository(sourceId) {
81
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(sourceId);
82
+ return ref;
83
+ }
84
+ _getHasManyThroughRepository(sourceId) {
85
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(sourceId);
86
+ return ref;
87
+ }
88
+ // ----------------------------------------------------------------------------------------------------------
89
+ _getContextUser() {
90
+ return new Promise((resolve, reject) => {
91
+ if (!this.getCurrentUser) {
92
+ resolve(null);
93
+ return;
94
+ }
95
+ if (typeof this.getCurrentUser !== 'function') {
96
+ throw (0, utilities_1.getError)({
97
+ statusCode: 500,
98
+ message: '[defineRelationViewController][_getContextUser] Invalid getCurrentUser type | Please check again the 3rd parameter in constructor!',
99
+ });
82
100
  }
101
+ this.getCurrentUser().then(resolve).catch(reject);
83
102
  });
84
103
  }
85
104
  // -----------------------------------------------------------------------------------------------
105
+ find(id, filter) {
106
+ switch (relationType) {
107
+ case common_1.EntityRelations.BELONGS_TO: {
108
+ return this._getBelongsToRepository(id).get();
109
+ }
110
+ case common_1.EntityRelations.HAS_ONE: {
111
+ return this._getHasOneRepository(id).get((0, common_2.applyLimit)(filter));
112
+ }
113
+ case common_1.EntityRelations.HAS_MANY: {
114
+ return this._getHasManyRepository(id).find((0, common_2.applyLimit)(filter));
115
+ }
116
+ case common_1.EntityRelations.HAS_MANY_THROUGH: {
117
+ return this._getHasManyThroughRepository(id).find((0, common_2.applyLimit)(filter));
118
+ }
119
+ default: {
120
+ return Promise.resolve([]);
121
+ }
122
+ }
123
+ }
124
+ // -----------------------------------------------------------------------------------------------
86
125
  count(id, where) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
89
- switch (relationType) {
90
- case common_1.EntityRelations.BELONGS_TO: {
91
- return ref;
92
- }
93
- case common_1.EntityRelations.HAS_ONE: {
94
- return ref
95
- .get({ where })
96
- .then(() => Promise.resolve({ count: 1 }))
97
- .catch(() => Promise.resolve({ count: 0 }));
98
- }
99
- case common_1.EntityRelations.HAS_MANY: {
100
- const targetConstraint = ref.constraint;
101
- const targetRepository = yield ref.getTargetRepository();
102
- return targetRepository.count(Object.assign(Object.assign({}, where), targetConstraint));
103
- }
104
- case common_1.EntityRelations.HAS_MANY_THROUGH: {
105
- const throughConstraint = yield ref.getThroughConstraintFromSource();
106
- const throughRepository = yield ref.getThroughRepository();
107
- const thoughInstances = yield throughRepository.find({
108
- where: Object.assign({}, throughConstraint),
126
+ switch (relationType) {
127
+ case common_1.EntityRelations.BELONGS_TO: {
128
+ return new Promise(resolve => {
129
+ this._getBelongsToRepository(id)
130
+ .get()
131
+ .then(rs => {
132
+ if (!rs) {
133
+ resolve({ count: 0 });
134
+ return;
135
+ }
136
+ resolve({ count: 1 });
137
+ })
138
+ .catch(() => {
139
+ resolve({ count: 0 });
109
140
  });
110
- const targetConstraint = yield ref.getTargetConstraintFromThroughModels(thoughInstances);
111
- const targetModelName = yield ref.targetResolver().name;
112
- const targetRepositoryGetter = (0, get_1.default)(ref.getTargetRepository, targetModelName);
113
- const targetRepository = yield targetRepositoryGetter();
114
- return targetRepository.count(Object.assign(Object.assign({}, where), targetConstraint));
115
- }
116
- default: {
117
- return { count: 0 };
118
- }
141
+ });
119
142
  }
120
- });
143
+ case common_1.EntityRelations.HAS_ONE: {
144
+ return new Promise(resolve => {
145
+ this._getHasOneRepository(id)
146
+ .get()
147
+ .then(rs => {
148
+ if (!rs) {
149
+ resolve({ count: 0 });
150
+ return;
151
+ }
152
+ resolve({ count: 1 });
153
+ })
154
+ .catch(() => {
155
+ resolve({ count: 0 });
156
+ });
157
+ });
158
+ }
159
+ case common_1.EntityRelations.HAS_MANY: {
160
+ const relationRepository = this._getHasManyRepository(id);
161
+ const targetConstraint = relationRepository.constraint;
162
+ const isPrincipalEntity = this.targetRepository.modelClass.definition.properties['principalType'] !== null;
163
+ const countCondition = Object.assign(Object.assign(Object.assign({}, where), targetConstraint), { principalType: isPrincipalEntity ? entities.source : undefined });
164
+ return this.targetRepository.count(countCondition);
165
+ }
166
+ case common_1.EntityRelations.HAS_MANY_THROUGH: {
167
+ return new Promise((resolve, reject) => {
168
+ const relationRepository = this._getHasManyThroughRepository(id);
169
+ const throughConstraint = relationRepository.getThroughConstraintFromSource();
170
+ relationRepository
171
+ .getThroughRepository()
172
+ .then(throughRepository => {
173
+ throughRepository
174
+ .find({
175
+ where: Object.assign({}, throughConstraint),
176
+ })
177
+ .then(throughInstances => {
178
+ const targetConstraint = relationRepository.getTargetConstraintFromThroughModels(throughInstances);
179
+ const condition = Object.assign(Object.assign({}, where), targetConstraint);
180
+ resolve(this.targetRepository.count(condition));
181
+ })
182
+ .catch(reject);
183
+ })
184
+ .catch(reject);
185
+ });
186
+ }
187
+ default: {
188
+ return { count: 0 };
189
+ }
190
+ }
121
191
  }
122
192
  }
123
193
  __decorate([
@@ -126,9 +196,7 @@ const defineRelationViewController = (opts) => {
126
196
  '200': {
127
197
  description: `Array of target model in relation ${relationName}`,
128
198
  content: {
129
- 'application/json': {
130
- schema,
131
- },
199
+ 'application/json': { schema },
132
200
  },
133
201
  },
134
202
  },
@@ -155,34 +223,19 @@ const defineRelationViewController = (opts) => {
155
223
  __param(1, rest_1.param.query.object('where')),
156
224
  __metadata("design:type", Function),
157
225
  __metadata("design:paramtypes", [Object, Object]),
158
- __metadata("design:returntype", Promise)
226
+ __metadata("design:returntype", void 0)
159
227
  ], ViewController.prototype, "count", null);
160
228
  return ViewController;
161
229
  };
162
230
  exports.defineRelationViewController = defineRelationViewController;
163
231
  // --------------------------------------------------------------------------------------------------------------
164
232
  const defineAssociateController = (opts) => {
165
- const { baseClass, relationName, defaultLimit = common_1.App.DEFAULT_QUERY_LIMIT, endPoint = '', schema } = opts;
233
+ const { baseClass, relationName, defaultLimit = common_1.App.DEFAULT_QUERY_LIMIT, endPoint = '', schema, } = opts;
166
234
  const restPath = `/{id}/${endPoint ? endPoint : relationName}`;
167
- const BaseClass = baseClass !== null && baseClass !== void 0 ? baseClass : common_2.BaseController;
168
- class AssociationController extends BaseClass {
169
- constructor(sourceRepository, targetRepository) {
170
- super(sourceRepository, targetRepository);
235
+ class AssociationController extends baseClass {
236
+ constructor(sourceRepository, targetRepository, getCurrentUser) {
237
+ super(sourceRepository, targetRepository, getCurrentUser);
171
238
  this.defaultLimit = defaultLimit;
172
- if (!sourceRepository) {
173
- throw (0, utilities_1.getError)({
174
- statusCode: 500,
175
- message: '[defineAssociateController] Invalid source repository!',
176
- });
177
- }
178
- this.sourceRepository = sourceRepository;
179
- if (!targetRepository) {
180
- throw (0, utilities_1.getError)({
181
- statusCode: 500,
182
- message: '[defineAssociateController] Invalid target repository!',
183
- });
184
- }
185
- this.targetRepository = targetRepository;
186
239
  }
187
240
  // -----------------------------------------------------------------------------------------------
188
241
  link(id, linkId) {
@@ -252,12 +305,13 @@ const defineAssociateController = (opts) => {
252
305
  exports.defineAssociateController = defineAssociateController;
253
306
  // --------------------------------------------------------------------------------------------------------------
254
307
  const defineRelationCrudController = (controllerOptions) => {
308
+ var _a, _b;
255
309
  const { association, schema, options = {
256
310
  useControlTarget: false,
257
311
  defaultLimit: common_1.App.DEFAULT_QUERY_LIMIT,
258
312
  endPoint: '',
259
313
  }, } = controllerOptions;
260
- const { relationName, relationType } = association;
314
+ const { entities, repositories, relationName, relationType } = association;
261
315
  const { target } = schema;
262
316
  if (!common_1.EntityRelations.isValid(relationType)) {
263
317
  throw (0, utilities_1.getError)({
@@ -266,10 +320,11 @@ const defineRelationCrudController = (controllerOptions) => {
266
320
  });
267
321
  }
268
322
  const { target: targetSchema } = schema;
269
- const { useControlTarget = true, defaultLimit = common_1.App.DEFAULT_QUERY_LIMIT, endPoint = '' } = options;
270
- const restPath = `{id}/${endPoint ? endPoint : relationName}`;
323
+ const { useControlTarget = true, defaultLimit = common_1.App.DEFAULT_QUERY_LIMIT, endPoint = relationName, } = options;
324
+ const restPath = `{id}/${endPoint}`;
271
325
  const ViewController = (0, exports.defineRelationViewController)({
272
326
  baseClass: common_2.BaseController,
327
+ entities,
273
328
  relationType,
274
329
  relationName,
275
330
  defaultLimit,
@@ -290,40 +345,55 @@ const defineRelationCrudController = (controllerOptions) => {
290
345
  }
291
346
  // -----------------------------------------------------------------------------------------------
292
347
  class Controller extends ExtendsableClass {
293
- constructor(sourceRepository, targetRepository) {
294
- if (!sourceRepository) {
295
- throw (0, utilities_1.getError)({
296
- statusCode: 500,
297
- message: '[defineRelationCrudController] Invalid source repository!',
298
- });
299
- }
300
- if (!targetRepository) {
301
- throw (0, utilities_1.getError)({
302
- statusCode: 500,
303
- message: '[defineRelationCrudController] Invalid target repository!',
304
- });
305
- }
306
- super(sourceRepository, targetRepository);
348
+ constructor(sourceRepository, targetRepository, getCurrentUser) {
349
+ super(sourceRepository, targetRepository, getCurrentUser);
307
350
  }
308
351
  // -----------------------------------------------------------------------------------------------
309
352
  create(id, mapping) {
310
- return __awaiter(this, void 0, void 0, function* () {
311
- const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
312
- return ref.create(mapping);
353
+ return new Promise((resolve, reject) => {
354
+ this._getContextUser()
355
+ .then((currentUser) => {
356
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
357
+ ref
358
+ .create(mapping, {
359
+ authorId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
360
+ })
361
+ .then(resolve)
362
+ .catch(reject);
363
+ })
364
+ .catch(reject);
313
365
  });
314
366
  }
315
367
  // -----------------------------------------------------------------------------------------------
316
368
  patch(id, mapping, where) {
317
- return __awaiter(this, void 0, void 0, function* () {
318
- const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
319
- return ref.patch(mapping, where);
369
+ return new Promise((resolve, reject) => {
370
+ this._getContextUser()
371
+ .then((currentUser) => {
372
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
373
+ ref
374
+ .patch(mapping, where, {
375
+ authorId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
376
+ })
377
+ .then(resolve)
378
+ .catch(reject);
379
+ })
380
+ .catch(reject);
320
381
  });
321
382
  }
322
383
  // -----------------------------------------------------------------------------------------------
323
384
  delete(id, where) {
324
- return __awaiter(this, void 0, void 0, function* () {
325
- const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
326
- return ref.delete(where);
385
+ return new Promise((resolve, reject) => {
386
+ this._getContextUser()
387
+ .then((currentUser) => {
388
+ const ref = (0, get_1.default)(this.sourceRepository, relationName)(id);
389
+ ref
390
+ .delete(where, {
391
+ authorId: currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId,
392
+ })
393
+ .then(resolve)
394
+ .catch(reject);
395
+ })
396
+ .catch(reject);
327
397
  });
328
398
  }
329
399
  }
@@ -387,6 +457,11 @@ const defineRelationCrudController = (controllerOptions) => {
387
457
  __metadata("design:paramtypes", [Number, Object]),
388
458
  __metadata("design:returntype", Promise)
389
459
  ], Controller.prototype, "delete", null);
460
+ (0, core_1.inject)(`repositories.${(_a = repositories === null || repositories === void 0 ? void 0 : repositories.source) !== null && _a !== void 0 ? _a : `${entities.source}Repository`}`)(Controller, undefined, 0);
461
+ (0, core_1.inject)(`repositories.${(_b = repositories === null || repositories === void 0 ? void 0 : repositories.target) !== null && _b !== void 0 ? _b : `${entities.target}Repository`}`)(Controller, undefined, 1);
462
+ if (options.doInjectCurrentUser) {
463
+ core_1.inject.getter(security_1.SecurityBindings.USER, { optional: true })(Controller, undefined, 2);
464
+ }
390
465
  return Controller;
391
466
  };
392
467
  exports.defineRelationCrudController = defineRelationCrudController;
@@ -1 +1 @@
1
- {"version":3,"file":"relational.controller.js","sourceRoot":"","sources":["../../../src/base/controllers/relational.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relational.controller.js","sourceRoot":"","sources":["../../../src/base/controllers/relational.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Getter } from '@loopback/core';
2
+ import { Count, Filter, FilterExcludingWhere, Where } from '@loopback/repository';
3
+ import { SchemaRef, RequestContext } from '@loopback/rest';
4
+ import { CrudRestControllerOptions } from '@loopback/rest-crud';
5
+ import { EntityRelationType, ICrudService, IdType } from '../../common/types';
6
+ import { IJWTTokenPayload } from '../../components/authenticate/common/types';
7
+ import { BaseIdEntity, BaseTzEntity } from './../';
8
+ export interface IServiceCrudControllerOptions<E extends BaseIdEntity> {
9
+ entity: typeof BaseIdEntity & {
10
+ prototype: E;
11
+ };
12
+ service: {
13
+ name: string;
14
+ };
15
+ controller: CrudRestControllerOptions & {
16
+ defaultLimit?: number;
17
+ };
18
+ schema?: {
19
+ find?: SchemaRef;
20
+ findOne?: SchemaRef;
21
+ findById?: SchemaRef;
22
+ count?: SchemaRef;
23
+ createRequestBody?: SchemaRef;
24
+ create?: SchemaRef;
25
+ updateAll?: SchemaRef;
26
+ updateByIdRequestBody?: SchemaRef;
27
+ updateById?: SchemaRef;
28
+ replaceById?: SchemaRef;
29
+ deleteById?: SchemaRef;
30
+ };
31
+ options?: {
32
+ doInjectCurrentUser?: boolean;
33
+ };
34
+ }
35
+ export declare const defineServiceCrudController: <E extends BaseTzEntity>(opts: IServiceCrudControllerOptions<E>) => {
36
+ new (requestContext: RequestContext, service: ICrudService<E>, getCurrentUser?: Getter<IJWTTokenPayload>): {
37
+ requestContext: RequestContext;
38
+ service: ICrudService<E>;
39
+ getCurrentUser?: Getter<IJWTTokenPayload>;
40
+ defaultLimit: number;
41
+ _getContextUser(): Promise<{
42
+ userId: IdType;
43
+ roles: {
44
+ id: IdType;
45
+ identifier: string;
46
+ priority: number;
47
+ }[];
48
+ } | null>;
49
+ find(filter?: Filter<E>): Promise<Array<E & EntityRelationType>>;
50
+ findById(id: IdType, filter?: FilterExcludingWhere<E>): Promise<E & EntityRelationType>;
51
+ findOne(filter?: Filter<E>): Promise<(E & EntityRelationType) | null>;
52
+ count(where?: Where<E>): Promise<Count>;
53
+ };
54
+ };