@solidstarters/solid-core 1.2.56 → 1.2.58

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 (100) hide show
  1. package/dist/controllers/chatter-message-details.controller.d.ts +41 -0
  2. package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -0
  3. package/dist/controllers/chatter-message-details.controller.js +179 -0
  4. package/dist/controllers/chatter-message-details.controller.js.map +1 -0
  5. package/dist/controllers/chatter-message.controller.d.ts +44 -0
  6. package/dist/controllers/chatter-message.controller.d.ts.map +1 -0
  7. package/dist/controllers/chatter-message.controller.js +199 -0
  8. package/dist/controllers/chatter-message.controller.js.map +1 -0
  9. package/dist/dtos/create-chatter-message-details.dto.d.ts +10 -0
  10. package/dist/dtos/create-chatter-message-details.dto.d.ts.map +1 -0
  11. package/dist/dtos/create-chatter-message-details.dto.js +66 -0
  12. package/dist/dtos/create-chatter-message-details.dto.js.map +1 -0
  13. package/dist/dtos/create-chatter-message.dto.d.ts +10 -0
  14. package/dist/dtos/create-chatter-message.dto.d.ts.map +1 -0
  15. package/dist/dtos/create-chatter-message.dto.js +65 -0
  16. package/dist/dtos/create-chatter-message.dto.js.map +1 -0
  17. package/dist/dtos/create-field-metadata.dto.d.ts +1 -0
  18. package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
  19. package/dist/dtos/create-field-metadata.dto.js +6 -1
  20. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  21. package/dist/dtos/post-chatter-message.dto.d.ts +7 -0
  22. package/dist/dtos/post-chatter-message.dto.d.ts.map +1 -0
  23. package/dist/dtos/post-chatter-message.dto.js +41 -0
  24. package/dist/dtos/post-chatter-message.dto.js.map +1 -0
  25. package/dist/dtos/update-chatter-message-details.dto.d.ts +11 -0
  26. package/dist/dtos/update-chatter-message-details.dto.d.ts.map +1 -0
  27. package/dist/dtos/update-chatter-message-details.dto.js +70 -0
  28. package/dist/dtos/update-chatter-message-details.dto.js.map +1 -0
  29. package/dist/dtos/update-chatter-message.dto.d.ts +11 -0
  30. package/dist/dtos/update-chatter-message.dto.d.ts.map +1 -0
  31. package/dist/dtos/update-chatter-message.dto.js +74 -0
  32. package/dist/dtos/update-chatter-message.dto.js.map +1 -0
  33. package/dist/entities/chatter-message-details.entity.d.ts +11 -0
  34. package/dist/entities/chatter-message-details.entity.d.ts.map +1 -0
  35. package/dist/entities/chatter-message-details.entity.js +52 -0
  36. package/dist/entities/chatter-message-details.entity.js.map +1 -0
  37. package/dist/entities/chatter-message.entity.d.ts +11 -0
  38. package/dist/entities/chatter-message.entity.d.ts.map +1 -0
  39. package/dist/entities/chatter-message.entity.js +53 -0
  40. package/dist/entities/chatter-message.entity.js.map +1 -0
  41. package/dist/entities/field-metadata.entity.d.ts +1 -0
  42. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  43. package/dist/entities/field-metadata.entity.js +5 -1
  44. package/dist/entities/field-metadata.entity.js.map +1 -1
  45. package/dist/index.d.ts +10 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +10 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/seeders/module-metadata-seeder.service.js +1 -1
  50. package/dist/seeders/seed-data/solid-core-metadata.json +517 -1
  51. package/dist/services/chatter-message-details.service.d.ts +24 -0
  52. package/dist/services/chatter-message-details.service.d.ts.map +1 -0
  53. package/dist/services/chatter-message-details.service.js +59 -0
  54. package/dist/services/chatter-message-details.service.js.map +1 -0
  55. package/dist/services/chatter-message.service.d.ts +37 -0
  56. package/dist/services/chatter-message.service.d.ts.map +1 -0
  57. package/dist/services/chatter-message.service.js +279 -0
  58. package/dist/services/chatter-message.service.js.map +1 -0
  59. package/dist/services/crud-helper.service.d.ts +3 -0
  60. package/dist/services/crud-helper.service.d.ts.map +1 -1
  61. package/dist/services/crud-helper.service.js +30 -10
  62. package/dist/services/crud-helper.service.js.map +1 -1
  63. package/dist/services/crud.service.d.ts +3 -5
  64. package/dist/services/crud.service.d.ts.map +1 -1
  65. package/dist/services/crud.service.js +49 -63
  66. package/dist/services/crud.service.js.map +1 -1
  67. package/dist/services/user-context.service.d.ts +10 -0
  68. package/dist/services/user-context.service.d.ts.map +1 -0
  69. package/dist/services/user-context.service.js +42 -0
  70. package/dist/services/user-context.service.js.map +1 -0
  71. package/dist/solid-core.module.d.ts.map +1 -1
  72. package/dist/solid-core.module.js +18 -2
  73. package/dist/solid-core.module.js.map +1 -1
  74. package/dist/subscribers/audit.subscriber.d.ts +17 -0
  75. package/dist/subscribers/audit.subscriber.d.ts.map +1 -0
  76. package/dist/subscribers/audit.subscriber.js +83 -0
  77. package/dist/subscribers/audit.subscriber.js.map +1 -0
  78. package/dist/tsconfig.tsbuildinfo +1 -1
  79. package/package.json +1 -1
  80. package/src/controllers/chatter-message-details.controller.ts +92 -0
  81. package/src/controllers/chatter-message.controller.ts +105 -0
  82. package/src/dtos/create-chatter-message-details.dto.ts +40 -0
  83. package/src/dtos/create-chatter-message.dto.ts +34 -0
  84. package/src/dtos/create-field-metadata.dto.ts +4 -0
  85. package/src/dtos/post-chatter-message.dto.ts +19 -0
  86. package/src/dtos/update-chatter-message-details.dto.ts +43 -0
  87. package/src/dtos/update-chatter-message.dto.ts +41 -0
  88. package/src/entities/chatter-message-details.entity.ts +25 -0
  89. package/src/entities/chatter-message.entity.ts +22 -0
  90. package/src/entities/field-metadata.entity.ts +3 -0
  91. package/src/index.ts +10 -2
  92. package/src/seeders/module-metadata-seeder.service.ts +1 -1
  93. package/src/seeders/seed-data/solid-core-metadata.json +518 -2
  94. package/src/services/chatter-message-details.service.ts +34 -0
  95. package/src/services/chatter-message.service.ts +301 -0
  96. package/src/services/crud-helper.service.ts +39 -13
  97. package/src/services/crud.service.ts +16 -81
  98. package/src/services/user-context.service.ts +31 -0
  99. package/src/solid-core.module.ts +18 -3
  100. package/src/subscribers/audit.subscriber.ts +73 -0
@@ -0,0 +1,73 @@
1
+ import { Connection, EntitySubscriberInterface, EventSubscriber, InsertEvent, RemoveEvent, UpdateEvent } from 'typeorm';
2
+ import { ChatterMessageService } from '../services/chatter-message.service';
3
+ import { EntityMetadata } from 'typeorm';
4
+ import { InjectRepository } from '@nestjs/typeorm';
5
+ import { ModelMetadata } from '../entities/model-metadata.entity';
6
+ import { Repository } from 'typeorm';
7
+ import { Injectable } from '@nestjs/common';
8
+ import { UserContextService } from '../services/user-context.service';
9
+ @Injectable()
10
+ @EventSubscriber()
11
+ export class AuditSubscriber implements EntitySubscriberInterface {
12
+
13
+ constructor(
14
+ private readonly connection: Connection,
15
+ private readonly chatterMessageService: ChatterMessageService,
16
+ @InjectRepository(ModelMetadata)
17
+ private readonly modelMetadataRepo: Repository<ModelMetadata>,
18
+ private readonly userContextService: UserContextService
19
+ ) {
20
+ connection.subscribers.push(this);
21
+ }
22
+
23
+ private async shouldTrackAudit(entity: any, metadata: EntityMetadata): Promise<boolean> {
24
+ const model = await this.modelMetadataRepo.findOne({
25
+ where: {
26
+ displayName: metadata.name
27
+ },
28
+ relations: {
29
+ fields: true,
30
+ module: true
31
+ }
32
+ });
33
+
34
+ if (!model || !model.enableAuditTracking) {
35
+ return false;
36
+ }
37
+
38
+ const auditFields = model.fields.filter(field =>
39
+ field.enableAuditTracking &&
40
+ !['oneToMany', 'mediaSingle', 'mediaMultiple', 'computed', 'richText', 'json'].includes(field.type)
41
+ );
42
+
43
+ if (auditFields.length === 0) {
44
+ return false;
45
+ }
46
+
47
+ return auditFields.some(field => {
48
+ const fieldValue = entity[field.name];
49
+ return fieldValue !== undefined && fieldValue !== null;
50
+ });
51
+ }
52
+
53
+ async afterInsert(event: InsertEvent<any>) {
54
+ if (await this.shouldTrackAudit(event.entity, event.metadata)) {
55
+ const activeUser = this.userContextService.getUser();
56
+ await this.chatterMessageService.postAuditMessageOnInsert(event.entity, event.metadata, activeUser);
57
+ }
58
+ }
59
+
60
+ async afterUpdate(event: UpdateEvent<any>) {
61
+ if (await this.shouldTrackAudit(event.entity, event.metadata)) {
62
+ const activeUser = this.userContextService.getUser();
63
+ await this.chatterMessageService.postAuditMessageOnUpdate(event.entity, event.metadata, event.databaseEntity, activeUser);
64
+ }
65
+ }
66
+
67
+ async afterRemove(event: RemoveEvent<any>) {
68
+ if (await this.shouldTrackAudit(event.entity, event.metadata)) {
69
+ const activeUser = this.userContextService.getUser();
70
+ await this.chatterMessageService.postAuditMessageOnDelete(event.entity, event.metadata, event.databaseEntity, activeUser);
71
+ }
72
+ }
73
+ }