@zeeshan60/event-processor 1.0.13 → 1.0.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 (191) hide show
  1. package/dist/ActivityEventHandler.d.ts +5 -5
  2. package/dist/ActivityEventHandler.d.ts.map +1 -1
  3. package/dist/ActivityEventHandler.js +27 -1
  4. package/dist/ActivityLogEvents.d.ts.map +1 -1
  5. package/dist/BaseEventHandler.d.ts +6 -0
  6. package/dist/BaseEventHandler.d.ts.map +1 -0
  7. package/dist/BaseEventHandler.js +2 -0
  8. package/dist/EventProcessorSDK.d.ts +30 -1
  9. package/dist/EventProcessorSDK.d.ts.map +1 -1
  10. package/dist/EventProcessorSDK.js +88 -5
  11. package/dist/FriendEventHandler.d.ts +5 -2
  12. package/dist/FriendEventHandler.d.ts.map +1 -1
  13. package/dist/FriendEventHandler.js +49 -15
  14. package/dist/GroupEventHandler.d.ts +5 -7
  15. package/dist/GroupEventHandler.d.ts.map +1 -1
  16. package/dist/GroupEventHandler.js +96 -18
  17. package/dist/GroupEvents.d.ts.map +1 -1
  18. package/dist/GroupTransactionEventHandler.d.ts +4 -1
  19. package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
  20. package/dist/GroupTransactionEventHandler.js +57 -13
  21. package/dist/GroupTransactionEvents.d.ts.map +1 -1
  22. package/dist/ModelChangeEmitter.d.ts +15 -0
  23. package/dist/ModelChangeEmitter.d.ts.map +1 -0
  24. package/dist/ModelChangeEmitter.js +31 -0
  25. package/dist/TransactionEventHandler.d.ts +6 -4
  26. package/dist/TransactionEventHandler.d.ts.map +1 -1
  27. package/dist/TransactionEventHandler.js +33 -21
  28. package/dist/TransactionEvents.d.ts.map +1 -1
  29. package/dist/UserEventHandler.d.ts +5 -2
  30. package/dist/UserEventHandler.d.ts.map +1 -1
  31. package/dist/UserEventHandler.js +32 -28
  32. package/dist/UserEvents.d.ts.map +1 -1
  33. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +2 -3
  34. package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -1
  35. package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +1 -3
  36. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts +2 -3
  37. package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts.map +1 -1
  38. package/dist/__tests__/test-helpers/IMActivityLogModelStore.js +1 -3
  39. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +2 -3
  40. package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -1
  41. package/dist/__tests__/test-helpers/IMFriendEventStore.js +1 -3
  42. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts +2 -3
  43. package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -1
  44. package/dist/__tests__/test-helpers/IMFriendModelStore.js +1 -3
  45. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +2 -3
  46. package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -1
  47. package/dist/__tests__/test-helpers/IMGroupEventStore.js +1 -3
  48. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts +2 -3
  49. package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts.map +1 -1
  50. package/dist/__tests__/test-helpers/IMGroupModelStore.js +1 -3
  51. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +2 -3
  52. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -1
  53. package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +1 -3
  54. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts +2 -3
  55. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts.map +1 -1
  56. package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js +1 -3
  57. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +2 -3
  58. package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -1
  59. package/dist/__tests__/test-helpers/IMTransactionEventStore.js +1 -3
  60. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts +2 -3
  61. package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts.map +1 -1
  62. package/dist/__tests__/test-helpers/IMTransactionModelStore.js +1 -3
  63. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +2 -3
  64. package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -1
  65. package/dist/__tests__/test-helpers/IMUserEventStore.js +1 -3
  66. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts +2 -3
  67. package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -1
  68. package/dist/__tests__/test-helpers/IMUserModelStore.js +1 -3
  69. package/dist/client/controllers/FriendController.d.ts +6 -5
  70. package/dist/client/controllers/FriendController.d.ts.map +1 -1
  71. package/dist/client/controllers/FriendController.js +23 -12
  72. package/dist/client/controllers/TransactionController.d.ts +12 -0
  73. package/dist/client/controllers/TransactionController.d.ts.map +1 -0
  74. package/dist/client/controllers/TransactionController.js +214 -0
  75. package/dist/client/controllers/UserController.d.ts.map +1 -1
  76. package/dist/client/controllers/UserController.js +3 -23
  77. package/dist/client/handlers/UIEventHandler.d.ts +3 -22
  78. package/dist/client/handlers/UIEventHandler.d.ts.map +1 -1
  79. package/dist/client/handlers/UIEventHandler.js +5 -44
  80. package/dist/common/DomainEvents.d.ts +0 -70
  81. package/dist/common/DomainEvents.d.ts.map +1 -1
  82. package/dist/common/DomainEvents.js +0 -89
  83. package/dist/contracts/expenses/index.d.ts.map +1 -1
  84. package/dist/contracts/friends/index.d.ts +1 -1
  85. package/dist/contracts/friends/index.d.ts.map +1 -1
  86. package/dist/contracts/groups/index.d.ts.map +1 -1
  87. package/dist/contracts/transactions/index.d.ts +1 -1
  88. package/dist/contracts/transactions/index.d.ts.map +1 -1
  89. package/dist/converters/ActivityLogConverters.d.ts +9 -0
  90. package/dist/converters/ActivityLogConverters.d.ts.map +1 -0
  91. package/dist/converters/ActivityLogConverters.js +39 -0
  92. package/dist/converters/EventConverterCore.d.ts +67 -0
  93. package/dist/converters/EventConverterCore.d.ts.map +1 -0
  94. package/dist/converters/EventConverterCore.js +59 -0
  95. package/dist/converters/FriendConverters.d.ts +33 -0
  96. package/dist/converters/FriendConverters.d.ts.map +1 -0
  97. package/dist/converters/FriendConverters.js +142 -0
  98. package/dist/converters/GroupConverters.d.ts +39 -0
  99. package/dist/converters/GroupConverters.d.ts.map +1 -0
  100. package/dist/converters/GroupConverters.js +160 -0
  101. package/dist/converters/GroupTransactionConverters.d.ts +57 -0
  102. package/dist/converters/GroupTransactionConverters.d.ts.map +1 -0
  103. package/dist/converters/GroupTransactionConverters.js +249 -0
  104. package/dist/converters/TransactionConverters.d.ts +51 -0
  105. package/dist/converters/TransactionConverters.d.ts.map +1 -0
  106. package/dist/converters/TransactionConverters.js +234 -0
  107. package/dist/converters/UserConverters.d.ts +51 -0
  108. package/dist/converters/UserConverters.d.ts.map +1 -0
  109. package/dist/converters/UserConverters.js +226 -0
  110. package/dist/converters/eventConverter.d.ts +10 -15
  111. package/dist/converters/eventConverter.d.ts.map +1 -1
  112. package/dist/converters/eventConverter.js +96 -352
  113. package/dist/events.d.ts +0 -1
  114. package/dist/events.d.ts.map +1 -1
  115. package/dist/events.js +1 -3
  116. package/dist/index.d.ts +6 -8
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +16 -33
  119. package/dist/store/ActivityLogEventStore.d.ts +2 -2
  120. package/dist/store/ActivityLogEventStore.d.ts.map +1 -1
  121. package/dist/store/ActivityLogEventStore.js +0 -4
  122. package/dist/store/ActivityLogModelStore.d.ts +4 -4
  123. package/dist/store/ActivityLogModelStore.d.ts.map +1 -1
  124. package/dist/store/ActivityLogModelStore.js +0 -5
  125. package/dist/store/FriendEventStore.d.ts +2 -2
  126. package/dist/store/FriendEventStore.d.ts.map +1 -1
  127. package/dist/store/FriendEventStore.js +0 -4
  128. package/dist/store/FriendModelStore.d.ts +9 -9
  129. package/dist/store/FriendModelStore.d.ts.map +1 -1
  130. package/dist/store/FriendModelStore.js +0 -5
  131. package/dist/store/GroupEventStore.d.ts +2 -2
  132. package/dist/store/GroupEventStore.d.ts.map +1 -1
  133. package/dist/store/GroupEventStore.js +0 -4
  134. package/dist/store/GroupModelStore.d.ts +6 -6
  135. package/dist/store/GroupModelStore.d.ts.map +1 -1
  136. package/dist/store/GroupModelStore.js +0 -5
  137. package/dist/store/GroupTransactionEventStore.d.ts +2 -2
  138. package/dist/store/GroupTransactionEventStore.d.ts.map +1 -1
  139. package/dist/store/GroupTransactionEventStore.js +0 -4
  140. package/dist/store/GroupTransactionModelStore.d.ts +6 -6
  141. package/dist/store/GroupTransactionModelStore.d.ts.map +1 -1
  142. package/dist/store/GroupTransactionModelStore.js +0 -5
  143. package/dist/store/ModelStore.d.ts +4 -4
  144. package/dist/store/ModelStore.d.ts.map +1 -1
  145. package/dist/store/ModelStore.js +0 -4
  146. package/dist/store/TransactionEventStore.d.ts +2 -2
  147. package/dist/store/TransactionEventStore.d.ts.map +1 -1
  148. package/dist/store/TransactionEventStore.js +0 -4
  149. package/dist/store/TransactionModelStore.d.ts +6 -6
  150. package/dist/store/TransactionModelStore.d.ts.map +1 -1
  151. package/dist/store/TransactionModelStore.js +0 -5
  152. package/dist/store/UserEventStore.d.ts +2 -2
  153. package/dist/store/UserEventStore.d.ts.map +1 -1
  154. package/dist/store/UserEventStore.js +0 -4
  155. package/dist/store/UserModelStore.d.ts +7 -7
  156. package/dist/store/UserModelStore.d.ts.map +1 -1
  157. package/dist/store/UserModelStore.js +0 -5
  158. package/package.json +1 -1
  159. package/dist/__tests__/e2e/setup/firebaseEmulator.d.ts +0 -3
  160. package/dist/__tests__/e2e/setup/firebaseEmulator.d.ts.map +0 -1
  161. package/dist/__tests__/e2e/setup/firebaseEmulator.js +0 -87
  162. package/dist/__tests__/e2e/setup/firestoreStores.d.ts +0 -28
  163. package/dist/__tests__/e2e/setup/firestoreStores.d.ts.map +0 -1
  164. package/dist/__tests__/e2e/setup/firestoreStores.js +0 -276
  165. package/dist/__tests__/e2e/setup/firestoreTestHelpers.d.ts +0 -15
  166. package/dist/__tests__/e2e/setup/firestoreTestHelpers.d.ts.map +0 -1
  167. package/dist/__tests__/e2e/setup/firestoreTestHelpers.js +0 -167
  168. package/dist/adapters/FirebaseAdminAdapter.d.ts +0 -8
  169. package/dist/adapters/FirebaseAdminAdapter.d.ts.map +0 -1
  170. package/dist/adapters/FirebaseAdminAdapter.js +0 -21
  171. package/dist/adapters/FirebaseClientAdapter.d.ts +0 -8
  172. package/dist/adapters/FirebaseClientAdapter.d.ts.map +0 -1
  173. package/dist/adapters/FirebaseClientAdapter.js +0 -22
  174. package/dist/client/handlers/UIActivityEventHandler.d.ts +0 -12
  175. package/dist/client/handlers/UIActivityEventHandler.d.ts.map +0 -1
  176. package/dist/client/handlers/UIActivityEventHandler.js +0 -14
  177. package/dist/common/EventBus.d.ts +0 -12
  178. package/dist/common/EventBus.d.ts.map +0 -1
  179. package/dist/common/EventBus.js +0 -26
  180. package/dist/common/EventBusSingleton.d.ts +0 -4
  181. package/dist/common/EventBusSingleton.d.ts.map +0 -1
  182. package/dist/common/EventBusSingleton.js +0 -18
  183. package/dist/config/environment.d.ts +0 -25
  184. package/dist/config/environment.d.ts.map +0 -1
  185. package/dist/config/environment.js +0 -77
  186. package/dist/controllers/UIEventHandler.d.ts +0 -25
  187. package/dist/controllers/UIEventHandler.d.ts.map +0 -1
  188. package/dist/controllers/UIEventHandler.js +0 -50
  189. package/dist/controllers/UserController.d.ts +0 -9
  190. package/dist/controllers/UserController.d.ts.map +0 -1
  191. package/dist/controllers/UserController.js +0 -36
@@ -1,12 +1,12 @@
1
- import { Event, Model } from ".";
2
- import { ActivityLogModelStore } from ".";
3
- import { ActivityLogEventStore } from ".";
4
- import { UserModelStore } from ".";
5
- export declare class ActivityEventHandler {
1
+ import { ActivityLogEvent, ActivityLogEventStore, ActivityLogModelStore, BaseEventHandler, Event, Model, UserModelStore } from ".";
2
+ export declare class ActivityEventHandler implements BaseEventHandler<ActivityLogEvent> {
6
3
  private activityLogModelStore;
7
4
  private activityLogEventStore;
8
5
  private userModelStore;
9
6
  constructor(activityLogModelStore: ActivityLogModelStore, activityLogEventStore: ActivityLogEventStore, userModelStore: UserModelStore);
7
+ private shouldSkipSave;
10
8
  createActivityLog(event: Event, existingModel: Model | undefined, updatedModel: Model): Promise<void>;
9
+ handleClientEventFromRemoteListener(event: ActivityLogEvent): Promise<void>;
10
+ handleEvent(event: ActivityLogEvent): Promise<any>;
11
11
  }
12
12
  //# sourceMappingURL=ActivityEventHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityEventHandler.d.ts","sourceRoot":"","sources":["../src/ActivityEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAA+C,MAAM,GAAG,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC;AAEnC,qBAAa,oBAAoB;IAEzB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,cAAc;gBAFd,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,EAAE,cAAc;IAGpC,iBAAiB,CACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,KAAK,GAAG,SAAS,EAChC,YAAY,EAAE,KAAK,GACpB,OAAO,CAAC,IAAI,CAAC;CA8BnB"}
1
+ {"version":3,"file":"ActivityEventHandler.d.ts","sourceRoot":"","sources":["../src/ActivityEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,gBAAgB,EAChB,qBAAqB,EAErB,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,cAAc,EACjB,MAAM,GAAG,CAAC;AAGX,qBAAa,oBACT,YAAW,gBAAgB,CAAC,gBAAgB,CAAC;IAGzC,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,cAAc;gBAFd,qBAAqB,EAAE,qBAAqB,EAC5C,qBAAqB,EAAE,qBAAqB,EAC5C,cAAc,EAAE,cAAc;IAG1C,OAAO,CAAC,cAAc;IAahB,iBAAiB,CACnB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,KAAK,GAAG,SAAS,EAChC,YAAY,EAAE,KAAK,GACpB,OAAO,CAAC,IAAI,CAAC;IAuCV,mCAAmC,CACrC,KAAK,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC;IAehB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC;CAOrD"}
@@ -2,12 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ActivityEventHandler = void 0;
4
4
  const _1 = require(".");
5
+ const EventProcessorSDK_1 = require("./EventProcessorSDK");
5
6
  class ActivityEventHandler {
6
7
  constructor(activityLogModelStore, activityLogEventStore, userModelStore) {
7
8
  this.activityLogModelStore = activityLogModelStore;
8
9
  this.activityLogEventStore = activityLogEventStore;
9
10
  this.userModelStore = userModelStore;
10
11
  }
12
+ shouldSkipSave(existingModel, updatedModel) {
13
+ if (!existingModel) {
14
+ return false;
15
+ }
16
+ return (existingModel.streamId === updatedModel.streamId &&
17
+ existingModel.version === updatedModel.version);
18
+ }
11
19
  async createActivityLog(event, existingModel, updatedModel) {
12
20
  if (!event.activityLog) {
13
21
  return;
@@ -29,7 +37,25 @@ class ActivityEventHandler {
29
37
  const activityLogEvent = new _1.ActivityLogCreated(activityLogProps);
30
38
  const activityLogModel = activityLogEvent.apply();
31
39
  await this.activityLogEventStore.addEvent(activityLogEvent);
32
- await this.activityLogModelStore.save(activityLogModel);
40
+ if (!this.shouldSkipSave(undefined, activityLogModel)) {
41
+ await this.activityLogModelStore.save(activityLogModel);
42
+ if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
43
+ EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("ActivityLogModel", activityLogModel);
44
+ }
45
+ }
46
+ }
47
+ async handleClientEventFromRemoteListener(event) {
48
+ const existingModel = await this.activityLogModelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
49
+ const updatedModel = event.apply(existingModel);
50
+ if (!this.shouldSkipSave(existingModel, updatedModel)) {
51
+ await this.activityLogModelStore.save(updatedModel);
52
+ EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("ActivityLogModel", updatedModel);
53
+ }
54
+ }
55
+ handleEvent(event) {
56
+ const error = new Error("Method not implemented. ActivityEventHandler only support createActivityLog for this");
57
+ console.error("Method not implemented.", event, error);
58
+ throw error;
33
59
  }
34
60
  }
35
61
  exports.ActivityEventHandler = ActivityEventHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"ActivityLogEvents.d.ts","sourceRoot":"","sources":["../src/ActivityLogEvents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,oBAAY,UAAU;IAClB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,gBAAgB,qBAAqB;CACxC;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;gBAEpB,KAAK,EAAE,uBAAuB;IAe1C,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,gBAAgB;CAa7C"}
1
+ {"version":3,"file":"ActivityLogEvents.d.ts","sourceRoot":"","sources":["../src/ActivityLogEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,oBAAY,UAAU;IAClB,WAAW,gBAAgB;IAC3B,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,gBAAgB,qBAAqB;CACxC;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,kBAAmB,YAAW,gBAAgB;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;gBAEpB,KAAK,EAAE,uBAAuB;IAe1C,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,gBAAgB;CAa7C"}
@@ -0,0 +1,6 @@
1
+ import { Event } from "./common/Event";
2
+ export interface BaseEventHandler<T extends Event> {
3
+ handleEvent(event: T): Promise<any>;
4
+ handleClientEventFromRemoteListener(event: T): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=BaseEventHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseEventHandler.d.ts","sourceRoot":"","sources":["../src/BaseEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,KAAK;IAC7C,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,mCAAmC,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -12,10 +12,14 @@ import { ActivityLogModelStore } from "./store/ActivityLogModelStore";
12
12
  import { ActivityLogEventStore } from "./store/ActivityLogEventStore";
13
13
  import { UserController } from "./client/controllers/UserController";
14
14
  import { FriendController } from "./client/controllers/FriendController";
15
+ import { TransactionController } from "./client/controllers/TransactionController";
15
16
  import { UIEventHandler } from "./client/handlers/UIEventHandler";
16
17
  import { FirebaseAdapter } from "./adapters/FirebaseAdapter";
17
- import type { Event } from "./events";
18
18
  import type { FirestoreEventData } from "./converters/eventConverter";
19
+ import { ActivityEventHandler, Event, FriendEventHandler, GroupEventHandler, GroupTransactionEventHandler, TransactionEventHandler, UserEventHandler } from "./events";
20
+ import { Model } from "./common/Model";
21
+ import { ModelChange } from "./ModelChangeEmitter";
22
+ import { Observable } from "rxjs";
19
23
  export type StoreConfig = {
20
24
  firebaseAdapter: FirebaseAdapter;
21
25
  userModelStore: UserModelStore;
@@ -36,7 +40,15 @@ export declare class EventProcessorSDK {
36
40
  private readonly storeConfig;
37
41
  private userControllerInstance;
38
42
  private friendControllerInstance;
43
+ private transactionControllerInstance;
39
44
  private uiEventHandlerInstance;
45
+ private userEventHandlerInstance;
46
+ private friendEventHandlerInstance;
47
+ private transactionEventHandlerInstance;
48
+ private groupEventHandlerInstance;
49
+ private groupTransactionEventHandlerInstance;
50
+ private activityEventHandlerInstance;
51
+ private readonly modelChangeEmitter;
40
52
  private constructor();
41
53
  static initialize(config: StoreConfig): EventProcessorSDK;
42
54
  static getInstance(): EventProcessorSDK;
@@ -45,14 +57,31 @@ export declare class EventProcessorSDK {
45
57
  getStoreConfig(): StoreConfig;
46
58
  getUserController(): UserController;
47
59
  getFriendController(): FriendController;
60
+ getTransactionController(): TransactionController;
48
61
  getUIEventHandler(): UIEventHandler;
62
+ getUserEventHandler(): UserEventHandler;
63
+ getFriendEventHandler(): FriendEventHandler;
64
+ getTransactionEventHandler(): TransactionEventHandler;
65
+ getGroupEventHandler(): GroupEventHandler;
66
+ getGroupTransactionEventHandler(): GroupTransactionEventHandler;
67
+ getActivityEventHandler(): ActivityEventHandler;
49
68
  getFirebaseAdapter(): FirebaseAdapter;
69
+ getModelChangeObservable(): Observable<ModelChange>;
70
+ emitModelChange(modelType: string, model: Model): void;
50
71
  }
51
72
  export declare function initializeSDK(config: StoreConfig): EventProcessorSDK;
52
73
  export declare function getUserController(): UserController;
53
74
  export declare function getFriendController(): FriendController;
75
+ export declare function getTransactionController(): TransactionController;
54
76
  export declare function getUIEventHandler(): UIEventHandler;
77
+ export declare function getUserEventHandler(): UserEventHandler;
78
+ export declare function getFriendEventHandler(): FriendEventHandler;
79
+ export declare function getTransactionEventHandler(): TransactionEventHandler;
80
+ export declare function getGroupEventHandler(): GroupEventHandler;
81
+ export declare function getGroupTransactionEventHandler(): GroupTransactionEventHandler;
82
+ export declare function getActivityEventHandler(): ActivityEventHandler;
55
83
  export declare function getFirebaseAdapter(): FirebaseAdapter;
84
+ export declare function getModelChangeObservable(): Observable<ModelChange>;
56
85
  export declare function eventToFirestore(event: Event): FirestoreEventData;
57
86
  export declare function firestoreToEvent(data: FirestoreEventData): Event;
58
87
  export declare function isSDKInitialized(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"EventProcessorSDK.d.ts","sourceRoot":"","sources":["../src/EventProcessorSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventProcessorSDK.d.ts","sourceRoot":"","sources":["../src/EventProcessorSDK.ts"],"names":[],"mappings":"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"}
@@ -4,19 +4,31 @@ exports.EventProcessorSDK = void 0;
4
4
  exports.initializeSDK = initializeSDK;
5
5
  exports.getUserController = getUserController;
6
6
  exports.getFriendController = getFriendController;
7
+ exports.getTransactionController = getTransactionController;
7
8
  exports.getUIEventHandler = getUIEventHandler;
9
+ exports.getUserEventHandler = getUserEventHandler;
10
+ exports.getFriendEventHandler = getFriendEventHandler;
11
+ exports.getTransactionEventHandler = getTransactionEventHandler;
12
+ exports.getGroupEventHandler = getGroupEventHandler;
13
+ exports.getGroupTransactionEventHandler = getGroupTransactionEventHandler;
14
+ exports.getActivityEventHandler = getActivityEventHandler;
8
15
  exports.getFirebaseAdapter = getFirebaseAdapter;
16
+ exports.getModelChangeObservable = getModelChangeObservable;
9
17
  exports.eventToFirestore = eventToFirestore;
10
18
  exports.firestoreToEvent = firestoreToEvent;
11
19
  exports.isSDKInitialized = isSDKInitialized;
12
20
  exports.__resetSDKForTesting = __resetSDKForTesting;
13
21
  const UserController_1 = require("./client/controllers/UserController");
14
22
  const FriendController_1 = require("./client/controllers/FriendController");
23
+ const TransactionController_1 = require("./client/controllers/TransactionController");
15
24
  const UIEventHandler_1 = require("./client/handlers/UIEventHandler");
16
25
  const eventConverter_1 = require("./converters/eventConverter");
26
+ const events_1 = require("./events");
27
+ const ModelChangeEmitter_1 = require("./ModelChangeEmitter");
17
28
  class EventProcessorSDK {
18
29
  constructor(config) {
19
30
  this.storeConfig = config;
31
+ this.modelChangeEmitter = new ModelChangeEmitter_1.ModelChangeEmitter();
20
32
  }
21
33
  static initialize(config) {
22
34
  EventProcessorSDK.instance = new EventProcessorSDK(config);
@@ -49,15 +61,64 @@ class EventProcessorSDK {
49
61
  }
50
62
  return this.friendControllerInstance;
51
63
  }
64
+ getTransactionController() {
65
+ if (!this.transactionControllerInstance) {
66
+ this.transactionControllerInstance = new TransactionController_1.TransactionController();
67
+ }
68
+ return this.transactionControllerInstance;
69
+ }
52
70
  getUIEventHandler() {
53
71
  if (!this.uiEventHandlerInstance) {
54
- this.uiEventHandlerInstance = new UIEventHandler_1.UIEventHandler(this.storeConfig.userModelStore);
72
+ this.uiEventHandlerInstance = new UIEventHandler_1.UIEventHandler();
55
73
  }
56
74
  return this.uiEventHandlerInstance;
57
75
  }
76
+ getUserEventHandler() {
77
+ if (!this.userEventHandlerInstance) {
78
+ this.userEventHandlerInstance = new events_1.UserEventHandler(this.storeConfig.userModelStore, this.storeConfig.userEventStore, this.getActivityEventHandler());
79
+ }
80
+ return this.userEventHandlerInstance;
81
+ }
82
+ getFriendEventHandler() {
83
+ if (!this.friendEventHandlerInstance) {
84
+ this.friendEventHandlerInstance = new events_1.FriendEventHandler(this.storeConfig.friendModelStore, this.storeConfig.userModelStore, this.storeConfig.friendEventStore, this.storeConfig.userEventStore, this.getActivityEventHandler());
85
+ }
86
+ return this.friendEventHandlerInstance;
87
+ }
88
+ getTransactionEventHandler() {
89
+ if (!this.transactionEventHandlerInstance) {
90
+ this.transactionEventHandlerInstance = new events_1.TransactionEventHandler(this.storeConfig.transactionModelStore, this.storeConfig.transactionEventStore, this.getActivityEventHandler());
91
+ }
92
+ return this.transactionEventHandlerInstance;
93
+ }
94
+ getGroupEventHandler() {
95
+ if (!this.groupEventHandlerInstance) {
96
+ this.groupEventHandlerInstance = new events_1.GroupEventHandler(this.storeConfig.groupModelStore, this.storeConfig.friendModelStore, this.storeConfig.userModelStore, this.storeConfig.groupEventStore, this.storeConfig.friendEventStore, this.getActivityEventHandler());
97
+ }
98
+ return this.groupEventHandlerInstance;
99
+ }
100
+ getGroupTransactionEventHandler() {
101
+ if (!this.groupTransactionEventHandlerInstance) {
102
+ this.groupTransactionEventHandlerInstance =
103
+ new events_1.GroupTransactionEventHandler(this.storeConfig.groupTransactionModelStore, this.storeConfig.groupTransactionEventStore, this.storeConfig.groupModelStore, this.storeConfig.transactionEventStore, this.storeConfig.transactionModelStore, this.getActivityEventHandler());
104
+ }
105
+ return this.groupTransactionEventHandlerInstance;
106
+ }
107
+ getActivityEventHandler() {
108
+ if (!this.activityEventHandlerInstance) {
109
+ this.activityEventHandlerInstance = new events_1.ActivityEventHandler(this.storeConfig.activityLogModelStore, this.storeConfig.activityLogEventStore, this.storeConfig.userModelStore);
110
+ }
111
+ return this.activityEventHandlerInstance;
112
+ }
58
113
  getFirebaseAdapter() {
59
114
  return this.storeConfig.firebaseAdapter;
60
115
  }
116
+ getModelChangeObservable() {
117
+ return this.modelChangeEmitter.asObservable();
118
+ }
119
+ emitModelChange(modelType, model) {
120
+ this.modelChangeEmitter.emit(modelType, model);
121
+ }
61
122
  }
62
123
  exports.EventProcessorSDK = EventProcessorSDK;
63
124
  function initializeSDK(config) {
@@ -69,19 +130,41 @@ function getUserController() {
69
130
  function getFriendController() {
70
131
  return EventProcessorSDK.getInstance().getFriendController();
71
132
  }
133
+ function getTransactionController() {
134
+ return EventProcessorSDK.getInstance().getTransactionController();
135
+ }
72
136
  function getUIEventHandler() {
73
137
  return EventProcessorSDK.getInstance().getUIEventHandler();
74
138
  }
139
+ function getUserEventHandler() {
140
+ return EventProcessorSDK.getInstance().getUserEventHandler();
141
+ }
142
+ function getFriendEventHandler() {
143
+ return EventProcessorSDK.getInstance().getFriendEventHandler();
144
+ }
145
+ function getTransactionEventHandler() {
146
+ return EventProcessorSDK.getInstance().getTransactionEventHandler();
147
+ }
148
+ function getGroupEventHandler() {
149
+ return EventProcessorSDK.getInstance().getGroupEventHandler();
150
+ }
151
+ function getGroupTransactionEventHandler() {
152
+ return EventProcessorSDK.getInstance().getGroupTransactionEventHandler();
153
+ }
154
+ function getActivityEventHandler() {
155
+ return EventProcessorSDK.getInstance().getActivityEventHandler();
156
+ }
75
157
  function getFirebaseAdapter() {
76
158
  return EventProcessorSDK.getInstance().getFirebaseAdapter();
77
159
  }
160
+ function getModelChangeObservable() {
161
+ return EventProcessorSDK.getInstance().getModelChangeObservable();
162
+ }
78
163
  function eventToFirestore(event) {
79
- const adapter = getFirebaseAdapter();
80
- return (0, eventConverter_1.eventToFirestore)(event, adapter);
164
+ return (0, eventConverter_1.eventToFirestore)(event);
81
165
  }
82
166
  function firestoreToEvent(data) {
83
- const adapter = getFirebaseAdapter();
84
- return (0, eventConverter_1.firestoreToEvent)(data, adapter);
167
+ return (0, eventConverter_1.firestoreToEvent)(data);
85
168
  }
86
169
  function isSDKInitialized() {
87
170
  return EventProcessorSDK.isInitialized();
@@ -1,13 +1,16 @@
1
1
  import { FriendCreated, FriendEvent, FriendEventStore, FriendModelStore, UserEventStore, UserModelStore } from ".";
2
+ import { BaseEventHandler } from "./BaseEventHandler";
2
3
  import { ActivityEventHandler } from "./ActivityEventHandler";
3
- export declare class FriendEventHandler {
4
+ export declare class FriendEventHandler implements BaseEventHandler<FriendEvent> {
4
5
  private modelStore;
5
6
  private userModelStore;
6
7
  private friendEventStore;
7
8
  private userEventStore;
8
9
  private activityEventHandler?;
9
10
  constructor(modelStore: FriendModelStore, userModelStore: UserModelStore, friendEventStore: FriendEventStore, userEventStore: UserEventStore, activityEventHandler?: ActivityEventHandler | undefined);
11
+ private shouldSkipSave;
12
+ handleClientEventFromRemoteListener(event: FriendEvent): Promise<void>;
10
13
  handleEvent(event: FriendEvent): Promise<void>;
11
- handleFriendCreated(event: FriendCreated): Promise<void>;
14
+ handleFriendCreatedOnBackend(event: FriendCreated): Promise<void>;
12
15
  }
13
16
  //# sourceMappingURL=FriendEventHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FriendEventHandler.d.ts","sourceRoot":"","sources":["../src/FriendEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,WAAW,EACX,gBAAgB,EAGhB,gBAAgB,EAGhB,cAAc,EAEd,cAAc,EACjB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,qBAAa,kBAAkB;IAEvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,oBAAoB,CAAC;gBAJrB,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAGjD,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB9C,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAgJjE"}
1
+ {"version":3,"file":"FriendEventHandler.d.ts","sourceRoot":"","sources":["../src/FriendEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,WAAW,EACX,gBAAgB,EAGhB,gBAAgB,EAIhB,cAAc,EAEd,cAAc,EACjB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,qBAAa,kBAAmB,YAAW,gBAAgB,CAAC,WAAW,CAAC;IAEhE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,oBAAoB,CAAC;gBAJrB,UAAU,EAAE,gBAAgB,EAC5B,cAAc,EAAE,cAAc,EAC9B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAGvD,OAAO,CAAC,cAAc;IAaT,mCAAmC,CAC5C,KAAK,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAiBV,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC9C,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CA4J1E"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FriendEventHandler = void 0;
4
4
  const _1 = require(".");
5
- const DomainEvents_1 = require("./common/DomainEvents");
6
5
  const uuid_1 = require("uuid");
6
+ const EventProcessorSDK_1 = require("./EventProcessorSDK");
7
7
  class FriendEventHandler {
8
8
  constructor(modelStore, userModelStore, friendEventStore, userEventStore, activityEventHandler) {
9
9
  this.modelStore = modelStore;
@@ -12,25 +12,49 @@ class FriendEventHandler {
12
12
  this.userEventStore = userEventStore;
13
13
  this.activityEventHandler = activityEventHandler;
14
14
  }
15
+ shouldSkipSave(existingModel, updatedModel) {
16
+ if (!existingModel) {
17
+ return false;
18
+ }
19
+ return (existingModel.streamId === updatedModel.streamId &&
20
+ existingModel.version === updatedModel.version);
21
+ }
22
+ async handleClientEventFromRemoteListener(event) {
23
+ const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
24
+ const updatedModel = event.apply(existingModel);
25
+ if (!this.shouldSkipSave(existingModel, updatedModel)) {
26
+ await this.modelStore.save(updatedModel);
27
+ if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
28
+ EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", updatedModel);
29
+ }
30
+ }
31
+ }
15
32
  async handleEvent(event) {
16
33
  const eventType = event.constructor.name;
17
- if (!(0, DomainEvents_1.isValidFriendEventType)(eventType)) {
18
- throw new Error(`Unknown friend event type: ${eventType}`);
34
+ if (!_1.residence.isClient && eventType === "FriendCreated") {
35
+ return await this.handleFriendCreatedOnBackend(event);
19
36
  }
20
37
  const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
21
38
  const updatedModel = event.apply(existingModel);
22
- await this.modelStore.save(updatedModel);
23
- if (_1.residence.isClient) {
24
- await this.friendEventStore.addEvent(event);
25
- if (this.activityEventHandler) {
26
- await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
39
+ if (!this.shouldSkipSave(existingModel, updatedModel)) {
40
+ await this.modelStore.save(updatedModel);
41
+ if (_1.residence.isClient) {
42
+ await this.friendEventStore.addEvent(event);
43
+ if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
44
+ EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", updatedModel);
45
+ }
46
+ if (this.activityEventHandler) {
47
+ await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
48
+ }
27
49
  }
28
50
  }
29
51
  }
30
- async handleFriendCreated(event) {
52
+ async handleFriendCreatedOnBackend(event) {
31
53
  const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
32
54
  const updatedModel = event.apply(existingModel);
33
- await this.modelStore.save(updatedModel);
55
+ if (!this.shouldSkipSave(existingModel, updatedModel)) {
56
+ await this.modelStore.save(updatedModel);
57
+ }
34
58
  // Check if friend is already a user (try phone first, then email)
35
59
  let friendUser = null;
36
60
  if (event.friendPhoneNumber) {
@@ -54,7 +78,9 @@ class FriendEventHandler {
54
78
  });
55
79
  await this.friendEventStore.addEvent(friendIdAddedEvent);
56
80
  const modelWithFriendId = friendIdAddedEvent.apply(updatedModel);
57
- await this.modelStore.save(modelWithFriendId);
81
+ if (!this.shouldSkipSave(updatedModel, modelWithFriendId)) {
82
+ await this.modelStore.save(modelWithFriendId);
83
+ }
58
84
  const primaryUser = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.userId);
59
85
  if (primaryUser) {
60
86
  const reciprocalFriendCreated = new _1.FriendCreated({
@@ -73,7 +99,9 @@ class FriendEventHandler {
73
99
  });
74
100
  await this.friendEventStore.addEvent(reciprocalFriendCreated);
75
101
  const reciprocalModel = reciprocalFriendCreated.apply(undefined);
76
- await this.modelStore.save(reciprocalModel);
102
+ if (!this.shouldSkipSave(undefined, reciprocalModel)) {
103
+ await this.modelStore.save(reciprocalModel);
104
+ }
77
105
  if (this.activityEventHandler) {
78
106
  await this.activityEventHandler.createActivityLog(reciprocalFriendCreated, undefined, reciprocalModel);
79
107
  }
@@ -96,7 +124,9 @@ class FriendEventHandler {
96
124
  });
97
125
  await this.userEventStore.addEvent(placeholderUserCreated);
98
126
  const placeholderUser = placeholderUserCreated.apply(undefined);
99
- await this.userModelStore.save(placeholderUser);
127
+ if (!this.shouldSkipSave(undefined, placeholderUser)) {
128
+ await this.userModelStore.save(placeholderUser);
129
+ }
100
130
  // Link primary user to placeholder
101
131
  const friendIdAddedEvent = new _1.FriendIdAdded({
102
132
  eventId: (0, uuid_1.v4)(),
@@ -110,7 +140,9 @@ class FriendEventHandler {
110
140
  });
111
141
  await this.friendEventStore.addEvent(friendIdAddedEvent);
112
142
  const modelWithPlaceholderId = friendIdAddedEvent.apply(updatedModel);
113
- await this.modelStore.save(modelWithPlaceholderId);
143
+ if (!this.shouldSkipSave(updatedModel, modelWithPlaceholderId)) {
144
+ await this.modelStore.save(modelWithPlaceholderId);
145
+ }
114
146
  // Create reciprocal friendship for placeholder user
115
147
  const primaryUser = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.userId);
116
148
  if (primaryUser) {
@@ -131,7 +163,9 @@ class FriendEventHandler {
131
163
  });
132
164
  await this.friendEventStore.addEvent(reciprocalFriendCreated);
133
165
  const reciprocalModel = reciprocalFriendCreated.apply(undefined);
134
- await this.modelStore.save(reciprocalModel);
166
+ if (!this.shouldSkipSave(undefined, reciprocalModel)) {
167
+ await this.modelStore.save(reciprocalModel);
168
+ }
135
169
  if (this.activityEventHandler) {
136
170
  await this.activityEventHandler.createActivityLog(reciprocalFriendCreated, undefined, reciprocalModel);
137
171
  }
@@ -1,11 +1,7 @@
1
- import { GroupCreated, GroupNameChanged, GroupDescriptionChanged, GroupMembersAdded, GroupMembersRemoved, GroupDeleted, GroupModel, GroupEvent } from ".";
2
- import { GroupModelStore } from ".";
3
- import { FriendModelStore } from ".";
4
- import { UserModelStore } from ".";
5
- import { GroupEventStore } from ".";
6
- import { FriendEventStore } from ".";
1
+ import { FriendEventStore, FriendModelStore, GroupCreated, GroupDeleted, GroupDescriptionChanged, GroupEvent, GroupEventStore, GroupMembersAdded, GroupMembersRemoved, GroupModel, GroupModelStore, GroupNameChanged, UserModelStore } from ".";
2
+ import { BaseEventHandler } from "./BaseEventHandler";
7
3
  import { ActivityEventHandler } from "./ActivityEventHandler";
8
- export declare class GroupEventHandler {
4
+ export declare class GroupEventHandler implements BaseEventHandler<GroupEvent> {
9
5
  private modelStore;
10
6
  private friendModelStore;
11
7
  private userModelStore;
@@ -13,6 +9,8 @@ export declare class GroupEventHandler {
13
9
  private friendEventStore;
14
10
  private activityEventHandler?;
15
11
  constructor(modelStore: GroupModelStore, friendModelStore: FriendModelStore, userModelStore: UserModelStore, groupEventStore: GroupEventStore, friendEventStore: FriendEventStore, activityEventHandler?: ActivityEventHandler | undefined);
12
+ private shouldSkipSave;
13
+ handleClientEventFromRemoteListener(event: GroupEvent): Promise<void>;
16
14
  handleEvent(event: GroupEvent): Promise<GroupModel>;
17
15
  private ensureBidirectionalFriendship;
18
16
  handleGroupCreated(event: GroupCreated): Promise<GroupModel>;
@@ -1 +1 @@
1
- {"version":3,"file":"GroupEventHandler.d.ts","sourceRoot":"","sources":["../src/GroupEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EAEV,UAAU,EACb,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,oBAAoB,CAAC;gBALrB,UAAU,EAAE,eAAe,EAC3B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAGjD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAgC3C,6BAA6B;IAwErC,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAgE5D,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4CpE,6BAA6B,CAC/B,KAAK,EAAE,uBAAuB,GAC/B,OAAO,CAAC,UAAU,CAAC;IA4ChB,uBAAuB,CACzB,KAAK,EAAE,iBAAiB,GACzB,OAAO,CAAC,UAAU,CAAC;IAkGhB,yBAAyB,CAC3B,KAAK,EAAE,mBAAmB,GAC3B,OAAO,CAAC,UAAU,CAAC;IA4ChB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;CAkBrE"}
1
+ {"version":3,"file":"GroupEventHandler.d.ts","sourceRoot":"","sources":["../src/GroupEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,gBAAgB,EAEhB,cAAc,EACjB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,qBAAa,iBAAkB,YAAW,gBAAgB,CAAC,UAAU,CAAC;IAE9D,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,oBAAoB,CAAC;gBALrB,UAAU,EAAE,eAAe,EAC3B,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,oBAAoB,CAAC,EAAE,oBAAoB,YAAA;IAGvD,OAAO,CAAC,cAAc;IAaT,mCAAmC,CAC5C,KAAK,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC;IAiBV,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YA6B3C,6BAA6B;IA4ErC,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAgF5D,sBAAsB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4DpE,6BAA6B,CAC/B,KAAK,EAAE,uBAAuB,GAC/B,OAAO,CAAC,UAAU,CAAC;IA4DhB,uBAAuB,CACzB,KAAK,EAAE,iBAAiB,GACzB,OAAO,CAAC,UAAU,CAAC;IA0HhB,yBAAyB,CAC3B,KAAK,EAAE,mBAAmB,GAC3B,OAAO,CAAC,UAAU,CAAC;IA4DhB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;CA0BrE"}