@solidstarters/solid-core 1.2.57 → 1.2.59

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 (137) hide show
  1. package/dist/config/iam.config.d.ts +2 -0
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +1 -0
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/controllers/chatter-message-details.controller.d.ts +41 -0
  6. package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -0
  7. package/dist/controllers/chatter-message-details.controller.js +179 -0
  8. package/dist/controllers/chatter-message-details.controller.js.map +1 -0
  9. package/dist/controllers/chatter-message.controller.d.ts +44 -0
  10. package/dist/controllers/chatter-message.controller.d.ts.map +1 -0
  11. package/dist/controllers/chatter-message.controller.js +199 -0
  12. package/dist/controllers/chatter-message.controller.js.map +1 -0
  13. package/dist/controllers/setting.controller.d.ts +3 -0
  14. package/dist/controllers/setting.controller.d.ts.map +1 -1
  15. package/dist/controllers/setting.controller.js +23 -0
  16. package/dist/controllers/setting.controller.js.map +1 -1
  17. package/dist/dtos/create-chatter-message-details.dto.d.ts +10 -0
  18. package/dist/dtos/create-chatter-message-details.dto.d.ts.map +1 -0
  19. package/dist/dtos/create-chatter-message-details.dto.js +66 -0
  20. package/dist/dtos/create-chatter-message-details.dto.js.map +1 -0
  21. package/dist/dtos/create-chatter-message.dto.d.ts +10 -0
  22. package/dist/dtos/create-chatter-message.dto.d.ts.map +1 -0
  23. package/dist/dtos/create-chatter-message.dto.js +65 -0
  24. package/dist/dtos/create-chatter-message.dto.js.map +1 -0
  25. package/dist/dtos/create-field-metadata.dto.d.ts +1 -0
  26. package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
  27. package/dist/dtos/create-field-metadata.dto.js +6 -1
  28. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  29. package/dist/dtos/create-setting.dto.d.ts +2 -15
  30. package/dist/dtos/create-setting.dto.d.ts.map +1 -1
  31. package/dist/dtos/create-setting.dto.js +6 -77
  32. package/dist/dtos/create-setting.dto.js.map +1 -1
  33. package/dist/dtos/post-chatter-message.dto.d.ts +7 -0
  34. package/dist/dtos/post-chatter-message.dto.d.ts.map +1 -0
  35. package/dist/dtos/post-chatter-message.dto.js +41 -0
  36. package/dist/dtos/post-chatter-message.dto.js.map +1 -0
  37. package/dist/dtos/update-chatter-message-details.dto.d.ts +11 -0
  38. package/dist/dtos/update-chatter-message-details.dto.d.ts.map +1 -0
  39. package/dist/dtos/update-chatter-message-details.dto.js +70 -0
  40. package/dist/dtos/update-chatter-message-details.dto.js.map +1 -0
  41. package/dist/dtos/update-chatter-message.dto.d.ts +11 -0
  42. package/dist/dtos/update-chatter-message.dto.d.ts.map +1 -0
  43. package/dist/dtos/update-chatter-message.dto.js +74 -0
  44. package/dist/dtos/update-chatter-message.dto.js.map +1 -0
  45. package/dist/dtos/update-setting.dto.d.ts +2 -15
  46. package/dist/dtos/update-setting.dto.d.ts.map +1 -1
  47. package/dist/dtos/update-setting.dto.js +6 -77
  48. package/dist/dtos/update-setting.dto.js.map +1 -1
  49. package/dist/dtos/update-settings.dto.d.ts +4 -0
  50. package/dist/dtos/update-settings.dto.d.ts.map +1 -0
  51. package/dist/dtos/update-settings.dto.js +26 -0
  52. package/dist/dtos/update-settings.dto.js.map +1 -0
  53. package/dist/entities/chatter-message-details.entity.d.ts +11 -0
  54. package/dist/entities/chatter-message-details.entity.d.ts.map +1 -0
  55. package/dist/entities/chatter-message-details.entity.js +52 -0
  56. package/dist/entities/chatter-message-details.entity.js.map +1 -0
  57. package/dist/entities/chatter-message.entity.d.ts +11 -0
  58. package/dist/entities/chatter-message.entity.d.ts.map +1 -0
  59. package/dist/entities/chatter-message.entity.js +53 -0
  60. package/dist/entities/chatter-message.entity.js.map +1 -0
  61. package/dist/entities/field-metadata.entity.d.ts +1 -0
  62. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  63. package/dist/entities/field-metadata.entity.js +5 -1
  64. package/dist/entities/field-metadata.entity.js.map +1 -1
  65. package/dist/entities/setting.entity.d.ts +2 -15
  66. package/dist/entities/setting.entity.d.ts.map +1 -1
  67. package/dist/entities/setting.entity.js +4 -65
  68. package/dist/entities/setting.entity.js.map +1 -1
  69. package/dist/index.d.ts +10 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +10 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  74. package/dist/seeders/module-metadata-seeder.service.js +1 -18
  75. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  76. package/dist/seeders/seed-data/solid-core-metadata.json +525 -176
  77. package/dist/services/authentication.service.d.ts +3 -1
  78. package/dist/services/authentication.service.d.ts.map +1 -1
  79. package/dist/services/authentication.service.js +11 -8
  80. package/dist/services/authentication.service.js.map +1 -1
  81. package/dist/services/chatter-message-details.service.d.ts +24 -0
  82. package/dist/services/chatter-message-details.service.d.ts.map +1 -0
  83. package/dist/services/chatter-message-details.service.js +59 -0
  84. package/dist/services/chatter-message-details.service.js.map +1 -0
  85. package/dist/services/chatter-message.service.d.ts +37 -0
  86. package/dist/services/chatter-message.service.d.ts.map +1 -0
  87. package/dist/services/chatter-message.service.js +279 -0
  88. package/dist/services/chatter-message.service.js.map +1 -0
  89. package/dist/services/crud.service.d.ts +3 -1
  90. package/dist/services/crud.service.d.ts.map +1 -1
  91. package/dist/services/crud.service.js +43 -3
  92. package/dist/services/crud.service.js.map +1 -1
  93. package/dist/services/setting.service.d.ts +4 -0
  94. package/dist/services/setting.service.d.ts.map +1 -1
  95. package/dist/services/setting.service.js +139 -7
  96. package/dist/services/setting.service.js.map +1 -1
  97. package/dist/services/user-context.service.d.ts +10 -0
  98. package/dist/services/user-context.service.d.ts.map +1 -0
  99. package/dist/services/user-context.service.js +42 -0
  100. package/dist/services/user-context.service.js.map +1 -0
  101. package/dist/solid-core.module.d.ts.map +1 -1
  102. package/dist/solid-core.module.js +18 -2
  103. package/dist/solid-core.module.js.map +1 -1
  104. package/dist/subscribers/audit.subscriber.d.ts +17 -0
  105. package/dist/subscribers/audit.subscriber.d.ts.map +1 -0
  106. package/dist/subscribers/audit.subscriber.js +83 -0
  107. package/dist/subscribers/audit.subscriber.js.map +1 -0
  108. package/dist/tsconfig.tsbuildinfo +1 -1
  109. package/package.json +1 -1
  110. package/src/config/iam.config.ts +1 -0
  111. package/src/controllers/chatter-message-details.controller.ts +92 -0
  112. package/src/controllers/chatter-message.controller.ts +105 -0
  113. package/src/controllers/setting.controller.ts +13 -1
  114. package/src/dtos/create-chatter-message-details.dto.ts +40 -0
  115. package/src/dtos/create-chatter-message.dto.ts +34 -0
  116. package/src/dtos/create-field-metadata.dto.ts +4 -0
  117. package/src/dtos/create-setting.dto.ts +10 -59
  118. package/src/dtos/post-chatter-message.dto.ts +19 -0
  119. package/src/dtos/update-chatter-message-details.dto.ts +43 -0
  120. package/src/dtos/update-chatter-message.dto.ts +41 -0
  121. package/src/dtos/update-setting.dto.ts +10 -60
  122. package/src/dtos/update-settings.dto.ts +7 -0
  123. package/src/entities/chatter-message-details.entity.ts +25 -0
  124. package/src/entities/chatter-message.entity.ts +22 -0
  125. package/src/entities/field-metadata.entity.ts +3 -0
  126. package/src/entities/setting.entity.ts +8 -46
  127. package/src/index.ts +10 -2
  128. package/src/seeders/module-metadata-seeder.service.ts +1 -19
  129. package/src/seeders/seed-data/solid-core-metadata.json +526 -177
  130. package/src/services/authentication.service.ts +8 -6
  131. package/src/services/chatter-message-details.service.ts +34 -0
  132. package/src/services/chatter-message.service.ts +301 -0
  133. package/src/services/crud.service.ts +10 -2
  134. package/src/services/setting.service.ts +163 -14
  135. package/src/services/user-context.service.ts +31 -0
  136. package/src/solid-core.module.ts +18 -3
  137. package/src/subscribers/audit.subscriber.ts +73 -0
@@ -154,7 +154,14 @@ import { RequestContextService } from './services/request-context.service';
154
154
  import { SecurityRuleRepository } from './repository/security-rule.repository';
155
155
  import { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';
156
156
  import { ListOfValuesController } from './controllers/list-of-values.controller';
157
-
157
+ import { ChatterMessage } from './entities/chatter-message.entity';
158
+ import { ChatterMessageService } from './services/chatter-message.service';
159
+ import { ChatterMessageController } from './controllers/chatter-message.controller';
160
+ import { ChatterMessageDetails } from './entities/chatter-message-details.entity';
161
+ import { ChatterMessageDetailsService } from './services/chatter-message-details.service';
162
+ import { ChatterMessageDetailsController } from './controllers/chatter-message-details.controller';
163
+ import { AuditSubscriber } from './subscribers/audit.subscriber';
164
+ import { UserContextService } from './services/user-context.service';
158
165
 
159
166
  @Global()
160
167
  @Module({
@@ -203,6 +210,8 @@ import { ListOfValuesController } from './controllers/list-of-values.controller'
203
210
  TypeOrmModule.forFeature([SecurityRule]),
204
211
  TypeOrmModule.forFeature([SavedFilters]),
205
212
  TypeOrmModule.forFeature([ListOfValues]),
213
+ TypeOrmModule.forFeature([ChatterMessage]),
214
+ TypeOrmModule.forFeature([ChatterMessageDetails]),
206
215
  // TypeOrmModule.forFeature([User]),
207
216
  ],
208
217
  controllers: [
@@ -232,7 +241,9 @@ import { ListOfValuesController } from './controllers/list-of-values.controller'
232
241
  UserViewMetadataController,
233
242
  SecurityRuleController,
234
243
  SavedFiltersController,
235
- ListOfValuesController
244
+ ListOfValuesController,
245
+ ChatterMessageController,
246
+ ChatterMessageDetailsController
236
247
  ],
237
248
  providers: [
238
249
  {
@@ -333,7 +344,11 @@ import { ListOfValuesController } from './controllers/list-of-values.controller'
333
344
  SecurityRuleRepository,
334
345
  SecurityRuleSubscriber,
335
346
  RequestContextService,
336
- SavedFiltersService
347
+ SavedFiltersService,
348
+ ChatterMessageService,
349
+ ChatterMessageDetailsService,
350
+ AuditSubscriber,
351
+ UserContextService,
337
352
  ],
338
353
  exports: [
339
354
  ModuleMetadataService,
@@ -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
+ }