@drax/crud-back 0.38.1 → 0.40.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.
@@ -99,71 +99,79 @@ class AbstractFastifyController extends CommonController {
99
99
  extractRequestData(request) {
100
100
  return {
101
101
  user: {
102
- id: request.rbac.userId,
103
- username: request.rbac.username,
102
+ id: request?.rbac?.userId,
103
+ username: request?.rbac?.username,
104
104
  role: {
105
- id: request.rbac.roleId,
106
- name: request.rbac.roleName,
105
+ id: request?.rbac?.roleId,
106
+ name: request?.rbac?.roleName,
107
107
  },
108
108
  tenant: {
109
- id: request.rbac.tenantId,
110
- name: request.rbac.tenantName,
109
+ id: request?.rbac?.tenantId,
110
+ name: request?.rbac?.tenantName,
111
111
  },
112
112
  apiKey: {
113
- id: request.rbac.apiKeyId,
114
- name: request.rbac.apiKeyName,
115
- }
113
+ id: request?.rbac?.apiKeyId,
114
+ name: request?.rbac?.apiKeyName,
115
+ },
116
+ session: request?.rbac?.session,
116
117
  },
117
118
  ip: request.ip,
118
119
  userAgent: request.headers['user-agent'],
119
- sessionId: request.rbac.session,
120
120
  requestId: request.id,
121
121
  };
122
122
  }
123
123
  async onCreated(request, item) {
124
124
  const requestData = this.extractRequestData(request);
125
+ const detail = `User ${requestData.user.username} created ${this.entityName}.`;
125
126
  const eventData = {
126
127
  action: 'created',
127
128
  entity: this.entityName,
128
129
  postItem: item,
129
130
  preItem: null,
130
131
  timestamp: new Date(),
132
+ detail: detail,
131
133
  ...requestData
132
134
  };
133
135
  this.eventEmitter.emitCrudEvent(eventData);
134
136
  }
135
137
  async onUpdated(request, preItem, postItem) {
136
138
  const requestData = this.extractRequestData(request);
139
+ const detail = `User ${requestData.user.username} updated ${this.entityName}.`;
137
140
  const eventData = {
138
141
  action: 'updated',
139
142
  entity: this.entityName,
140
143
  postItem: postItem,
141
144
  preItem: preItem,
142
145
  timestamp: new Date(),
146
+ detail: detail,
143
147
  ...requestData
144
148
  };
145
149
  this.eventEmitter.emitCrudEvent(eventData);
146
150
  }
147
151
  async onDeleted(request, item) {
148
152
  const requestData = this.extractRequestData(request);
153
+ const detail = `User ${requestData.user.username} deleted ${this.entityName}.`;
149
154
  const eventData = {
150
155
  action: 'deleted',
151
156
  entity: this.entityName,
152
157
  postItem: null,
153
158
  preItem: item,
154
159
  timestamp: new Date(),
160
+ detail: detail,
155
161
  ...requestData
156
162
  };
157
163
  this.eventEmitter.emitCrudEvent(eventData);
158
164
  }
159
165
  async onExported(request, response) {
160
166
  const requestData = this.extractRequestData(request);
167
+ const detail = `User ${requestData.user.username} exported ${this.entityName}.`;
161
168
  const eventData = {
162
169
  action: 'exported',
163
170
  entity: this.entityName,
164
171
  postItem: null,
165
172
  preItem: null,
166
173
  timestamp: new Date(),
174
+ detail: detail,
167
175
  ...requestData
168
176
  };
169
177
  this.eventEmitter.emitCrudEvent(eventData);
@@ -174,7 +182,7 @@ class AbstractFastifyController extends CommonController {
174
182
  const payload = request.body;
175
183
  this.applyUserAndTenantSetters(payload, request.rbac);
176
184
  let item = await this.service.create(payload);
177
- await this.onCreated(request, item);
185
+ this.onCreated(request, item);
178
186
  return item;
179
187
  }
180
188
  catch (e) {
@@ -205,7 +213,7 @@ class AbstractFastifyController extends CommonController {
205
213
  if (!item) {
206
214
  throw new NotFoundError();
207
215
  }
208
- await this.onUpdated(request, preItem, item);
216
+ this.onUpdated(request, preItem, item);
209
217
  return item;
210
218
  }
211
219
  catch (e) {
@@ -236,7 +244,7 @@ class AbstractFastifyController extends CommonController {
236
244
  if (!item) {
237
245
  throw new NotFoundError();
238
246
  }
239
- await this.onUpdated(request, preItem, item);
247
+ this.onUpdated(request, preItem, item);
240
248
  return item;
241
249
  }
242
250
  catch (e) {
@@ -261,7 +269,7 @@ class AbstractFastifyController extends CommonController {
261
269
  }
262
270
  this.assertTenant(item, request.rbac);
263
271
  await this.service.delete(id);
264
- await this.onDeleted(request, item);
272
+ this.onDeleted(request, item);
265
273
  reply.send({
266
274
  id: id,
267
275
  message: 'Item deleted successfully',
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.38.1",
6
+ "version": "0.40.0",
7
7
  "description": "Crud utils across modules",
8
8
  "main": "dist/index.js",
9
9
  "types": "types/index.d.ts",
@@ -22,10 +22,10 @@
22
22
  "author": "Cristian Incarnato & Drax Team",
23
23
  "license": "ISC",
24
24
  "dependencies": {
25
- "@drax/common-back": "^0.38.0",
26
- "@drax/common-share": "^0.38.0",
27
- "@drax/identity-share": "^0.38.0",
28
- "@drax/media-back": "^0.38.1",
25
+ "@drax/common-back": "^0.40.0",
26
+ "@drax/common-share": "^0.40.0",
27
+ "@drax/identity-share": "^0.40.0",
28
+ "@drax/media-back": "^0.40.0",
29
29
  "@graphql-tools/load-files": "^7.0.0",
30
30
  "@graphql-tools/merge": "^9.0.4",
31
31
  "mongoose": "^8.6.3",
@@ -45,5 +45,5 @@
45
45
  "tsc-alias": "^1.8.10",
46
46
  "typescript": "^5.6.2"
47
47
  },
48
- "gitHead": "33404c9f1b3df6a3f86624389916d1cae0c56904"
48
+ "gitHead": "269ec7921d83364dfba091cd74bd3f45a8135c26"
49
49
  }
@@ -180,39 +180,43 @@ class AbstractFastifyController<T, C, U> extends CommonController {
180
180
  }
181
181
  }
182
182
 
183
- protected extractRequestData(request: CustomRequest) {
183
+ protected extractRequestData(request: FastifyRequest) {
184
184
  return {
185
185
  user: {
186
- id: request.rbac.userId,
187
- username: request.rbac.username,
186
+ id: request?.rbac?.userId,
187
+ username: request?.rbac?.username,
188
188
  role:{
189
- id: request.rbac.roleId,
190
- name: request.rbac.roleName,
189
+ id: request?.rbac?.roleId,
190
+ name: request?.rbac?.roleName,
191
191
  },
192
192
  tenant: {
193
- id: request.rbac.tenantId,
194
- name: request.rbac.tenantName,
193
+ id: request?.rbac?.tenantId,
194
+ name: request?.rbac?.tenantName,
195
195
  },
196
196
  apiKey: {
197
- id: request.rbac.apiKeyId,
198
- name: request.rbac.apiKeyName,
199
- }
197
+ id: request?.rbac?.apiKeyId,
198
+ name: request?.rbac?.apiKeyName,
199
+ },
200
+ session: request?.rbac?.session,
200
201
  },
201
202
  ip: request.ip,
202
203
  userAgent: request.headers['user-agent'],
203
- sessionId: request.rbac.session,
204
204
  requestId: request.id,
205
205
  };
206
206
  }
207
207
 
208
+
209
+
208
210
  async onCreated(request: CustomRequest, item:T){
209
211
  const requestData = this.extractRequestData(request)
212
+ const detail = `User ${requestData.user.username} created ${this.entityName}.`
210
213
  const eventData : IDraxCrudEvent = {
211
214
  action: 'created',
212
215
  entity: this.entityName,
213
216
  postItem: item,
214
217
  preItem: null,
215
218
  timestamp: new Date(),
219
+ detail: detail,
216
220
  ...requestData
217
221
  }
218
222
  this.eventEmitter.emitCrudEvent(eventData)
@@ -220,12 +224,14 @@ class AbstractFastifyController<T, C, U> extends CommonController {
220
224
 
221
225
  async onUpdated(request: CustomRequest, preItem: T, postItem:T){
222
226
  const requestData = this.extractRequestData(request)
227
+ const detail = `User ${requestData.user.username} updated ${this.entityName}.`
223
228
  const eventData : IDraxCrudEvent = {
224
229
  action: 'updated',
225
230
  entity: this.entityName,
226
231
  postItem: postItem,
227
232
  preItem: preItem,
228
233
  timestamp: new Date(),
234
+ detail: detail,
229
235
  ...requestData
230
236
  }
231
237
  this.eventEmitter.emitCrudEvent(eventData)
@@ -233,12 +239,14 @@ class AbstractFastifyController<T, C, U> extends CommonController {
233
239
 
234
240
  async onDeleted(request: CustomRequest, item: T) {
235
241
  const requestData = this.extractRequestData(request)
242
+ const detail = `User ${requestData.user.username} deleted ${this.entityName}.`
236
243
  const eventData : IDraxCrudEvent = {
237
244
  action: 'deleted',
238
245
  entity: this.entityName,
239
246
  postItem: null,
240
247
  preItem: item,
241
248
  timestamp: new Date(),
249
+ detail: detail,
242
250
  ...requestData
243
251
  }
244
252
  this.eventEmitter.emitCrudEvent(eventData)
@@ -246,12 +254,14 @@ class AbstractFastifyController<T, C, U> extends CommonController {
246
254
 
247
255
  async onExported(request: CustomRequest, response: IDraxExportResponse) {
248
256
  const requestData = this.extractRequestData(request)
257
+ const detail = `User ${requestData.user.username} exported ${this.entityName}.`
249
258
  const eventData : IDraxCrudEvent = {
250
259
  action: 'exported',
251
260
  entity: this.entityName,
252
261
  postItem: null,
253
262
  preItem: null,
254
263
  timestamp: new Date(),
264
+ detail: detail,
255
265
  ...requestData
256
266
  }
257
267
  this.eventEmitter.emitCrudEvent(eventData)
@@ -264,7 +274,7 @@ class AbstractFastifyController<T, C, U> extends CommonController {
264
274
  const payload = request.body
265
275
  this.applyUserAndTenantSetters(payload, request.rbac)
266
276
  let item = await this.service.create(payload as C)
267
- await this.onCreated(request, item)
277
+ this.onCreated(request, item)
268
278
  return item
269
279
  } catch (e) {
270
280
  this.handleError(e, reply)
@@ -305,7 +315,7 @@ class AbstractFastifyController<T, C, U> extends CommonController {
305
315
  throw new NotFoundError()
306
316
  }
307
317
 
308
- await this.onUpdated(request, preItem, item)
318
+ this.onUpdated(request, preItem, item)
309
319
 
310
320
  return item
311
321
  } catch (e) {
@@ -343,7 +353,7 @@ class AbstractFastifyController<T, C, U> extends CommonController {
343
353
  if (!item) {
344
354
  throw new NotFoundError()
345
355
  }
346
- await this.onUpdated(request, preItem, item)
356
+ this.onUpdated(request, preItem, item)
347
357
  return item
348
358
  } catch (e) {
349
359
  this.handleError(e, reply)
@@ -378,7 +388,7 @@ class AbstractFastifyController<T, C, U> extends CommonController {
378
388
 
379
389
  await this.service.delete(id)
380
390
 
381
- await this.onDeleted(request, item)
391
+ this.onDeleted(request, item)
382
392
 
383
393
  reply.send({
384
394
  id: id,