@zeeshan60/event-processor 1.0.12 → 1.0.14
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.
- package/dist/ActivityEventHandler.d.ts +5 -4
- package/dist/ActivityEventHandler.d.ts.map +1 -1
- package/dist/ActivityEventHandler.js +14 -1
- package/dist/ActivityLogEvents.d.ts +4 -2
- package/dist/ActivityLogEvents.d.ts.map +1 -1
- package/dist/ActivityLogEvents.js +1 -0
- package/dist/EventProcessorSDK.d.ts +47 -18
- package/dist/EventProcessorSDK.d.ts.map +1 -1
- package/dist/EventProcessorSDK.js +90 -5
- package/dist/FriendEventHandler.d.ts +5 -12
- package/dist/FriendEventHandler.d.ts.map +1 -1
- package/dist/FriendEventHandler.js +71 -60
- package/dist/FriendEvents.d.ts +13 -3
- package/dist/FriendEvents.d.ts.map +1 -1
- package/dist/FriendEvents.js +16 -7
- package/dist/GroupEventHandler.d.ts +8 -7
- package/dist/GroupEventHandler.d.ts.map +1 -1
- package/dist/GroupEventHandler.js +107 -26
- package/dist/GroupEvents.d.ts +15 -3
- package/dist/GroupEvents.d.ts.map +1 -1
- package/dist/GroupEvents.js +25 -13
- package/dist/GroupTransactionEventHandler.d.ts +8 -7
- package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
- package/dist/GroupTransactionEventHandler.js +69 -24
- package/dist/GroupTransactionEvents.d.ts +22 -4
- package/dist/GroupTransactionEvents.d.ts.map +1 -1
- package/dist/GroupTransactionEvents.js +39 -21
- package/dist/ModelChangeEmitter.d.ts +15 -0
- package/dist/ModelChangeEmitter.d.ts.map +1 -0
- package/dist/ModelChangeEmitter.js +31 -0
- package/dist/TransactionEventHandler.d.ts +3 -5
- package/dist/TransactionEventHandler.d.ts.map +1 -1
- package/dist/TransactionEventHandler.js +49 -15
- package/dist/TransactionEvents.d.ts +24 -8
- package/dist/TransactionEvents.d.ts.map +1 -1
- package/dist/TransactionEvents.js +38 -22
- package/dist/UserEventHandler.d.ts +4 -11
- package/dist/UserEventHandler.d.ts.map +1 -1
- package/dist/UserEventHandler.js +86 -61
- package/dist/UserEvents.d.ts +20 -3
- package/dist/UserEvents.d.ts.map +1 -1
- package/dist/UserEvents.js +53 -18
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.js +1 -3
- package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMActivityLogModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMActivityLogModelStore.js +1 -3
- package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMFriendEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMFriendEventStore.js +1 -3
- package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts +4 -3
- package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMFriendModelStore.js +10 -3
- package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMGroupEventStore.js +1 -3
- package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMGroupModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMGroupModelStore.js +1 -3
- package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMGroupTransactionEventStore.js +1 -3
- package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMGroupTransactionModelStore.js +1 -3
- package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMTransactionEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMTransactionEventStore.js +1 -3
- package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMTransactionModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMTransactionModelStore.js +1 -3
- package/dist/__tests__/test-helpers/IMUserEventStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMUserEventStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMUserEventStore.js +1 -3
- package/dist/__tests__/test-helpers/IMUserModelStore.d.ts +3 -3
- package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMUserModelStore.js +1 -3
- package/dist/__tests__/test-helpers/MockFirebaseAdapter.d.ts +2 -1
- package/dist/__tests__/test-helpers/MockFirebaseAdapter.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/MockFirebaseAdapter.js +5 -1
- package/dist/client/controllers/FriendController.d.ts +13 -0
- package/dist/client/controllers/FriendController.d.ts.map +1 -0
- package/dist/client/controllers/FriendController.js +133 -0
- package/dist/client/controllers/UserController.d.ts +6 -5
- package/dist/client/controllers/UserController.d.ts.map +1 -1
- package/dist/client/controllers/UserController.js +89 -22
- package/dist/client/handlers/UIEventHandler.d.ts +4 -22
- package/dist/client/handlers/UIEventHandler.d.ts.map +1 -1
- package/dist/client/handlers/UIEventHandler.js +59 -38
- package/dist/client/handlers/UIFriendEventHandler.d.ts +6 -6
- package/dist/client/handlers/UIFriendEventHandler.d.ts.map +1 -1
- package/dist/client/handlers/UIGroupEventHandler.d.ts +7 -7
- package/dist/client/handlers/UIGroupEventHandler.d.ts.map +1 -1
- package/dist/client/handlers/UIGroupTransactionEventHandler.d.ts +7 -7
- package/dist/client/handlers/UIGroupTransactionEventHandler.d.ts.map +1 -1
- package/dist/client/handlers/UITransactionEventHandler.d.ts +5 -5
- package/dist/client/handlers/UITransactionEventHandler.d.ts.map +1 -1
- package/dist/client/handlers/UIUserEventHandler.d.ts +4 -4
- package/dist/client/handlers/UIUserEventHandler.d.ts.map +1 -1
- package/dist/common/DomainEvents.d.ts +1 -1
- package/dist/common/DomainEvents.d.ts.map +1 -1
- package/dist/common/DomainEvents.js +37 -37
- package/dist/common/Event.d.ts +3 -2
- package/dist/common/Event.d.ts.map +1 -1
- package/dist/common/Model.d.ts.map +1 -1
- package/dist/common/index.d.ts +2 -2
- package/dist/contracts/common/index.d.ts.map +1 -1
- package/dist/contracts/expenses/index.d.ts.map +1 -1
- package/dist/contracts/friends/index.d.ts.map +1 -1
- package/dist/contracts/groups/index.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +1 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +1 -0
- package/dist/contracts/shared/index.d.ts.map +1 -1
- package/dist/contracts/transactions/index.d.ts.map +1 -1
- package/dist/contracts/users/index.d.ts +15 -0
- package/dist/contracts/users/index.d.ts.map +1 -0
- package/dist/contracts/users/index.js +2 -0
- package/dist/converters/eventConverter.d.ts +3 -3
- package/dist/converters/eventConverter.d.ts.map +1 -1
- package/dist/converters/eventConverter.js +93 -51
- package/dist/events.d.ts +29 -29
- package/dist/events.d.ts.map +1 -1
- package/dist/index.d.ts +15 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -4
- package/dist/store/ActivityLogEventStore.d.ts +3 -3
- package/dist/store/ActivityLogEventStore.d.ts.map +1 -1
- package/dist/store/ActivityLogEventStore.js +0 -4
- package/dist/store/ActivityLogModelStore.d.ts +6 -6
- package/dist/store/ActivityLogModelStore.d.ts.map +1 -1
- package/dist/store/ActivityLogModelStore.js +0 -5
- package/dist/store/FriendEventStore.d.ts +3 -3
- package/dist/store/FriendEventStore.d.ts.map +1 -1
- package/dist/store/FriendEventStore.js +0 -4
- package/dist/store/FriendModelStore.d.ts +11 -10
- package/dist/store/FriendModelStore.d.ts.map +1 -1
- package/dist/store/FriendModelStore.js +0 -5
- package/dist/store/GroupEventStore.d.ts +3 -3
- package/dist/store/GroupEventStore.d.ts.map +1 -1
- package/dist/store/GroupEventStore.js +0 -4
- package/dist/store/GroupModelStore.d.ts +8 -8
- package/dist/store/GroupModelStore.d.ts.map +1 -1
- package/dist/store/GroupModelStore.js +0 -5
- package/dist/store/GroupTransactionEventStore.d.ts +3 -3
- package/dist/store/GroupTransactionEventStore.d.ts.map +1 -1
- package/dist/store/GroupTransactionEventStore.js +0 -4
- package/dist/store/GroupTransactionModelStore.d.ts +8 -8
- package/dist/store/GroupTransactionModelStore.d.ts.map +1 -1
- package/dist/store/GroupTransactionModelStore.js +0 -5
- package/dist/store/ModelStore.d.ts +5 -5
- package/dist/store/ModelStore.d.ts.map +1 -1
- package/dist/store/ModelStore.js +0 -4
- package/dist/store/TransactionEventStore.d.ts +3 -3
- package/dist/store/TransactionEventStore.d.ts.map +1 -1
- package/dist/store/TransactionEventStore.js +0 -4
- package/dist/store/TransactionModelStore.d.ts +8 -8
- package/dist/store/TransactionModelStore.d.ts.map +1 -1
- package/dist/store/TransactionModelStore.js +0 -5
- package/dist/store/UserEventStore.d.ts +3 -3
- package/dist/store/UserEventStore.d.ts.map +1 -1
- package/dist/store/UserEventStore.js +0 -4
- package/dist/store/UserModelStore.d.ts +9 -9
- package/dist/store/UserModelStore.d.ts.map +1 -1
- package/dist/store/UserModelStore.js +0 -5
- package/dist/utils/splitTypeUtils.d.ts +1 -1
- package/dist/utils/splitTypeUtils.d.ts.map +1 -1
- package/dist/utils/userPathUtils.d.ts +1 -1
- package/dist/utils/userPathUtils.d.ts.map +1 -1
- package/dist/utils/userPathUtils.js +3 -3
- package/package.json +1 -1
- package/dist/adapters/FirebaseAdminAdapter.d.ts +0 -8
- package/dist/adapters/FirebaseAdminAdapter.d.ts.map +0 -1
- package/dist/adapters/FirebaseAdminAdapter.js +0 -21
- package/dist/adapters/FirebaseClientAdapter.d.ts +0 -8
- package/dist/adapters/FirebaseClientAdapter.d.ts.map +0 -1
- package/dist/adapters/FirebaseClientAdapter.js +0 -22
- package/dist/client/handlers/UIActivityEventHandler.d.ts +0 -12
- package/dist/client/handlers/UIActivityEventHandler.d.ts.map +0 -1
- package/dist/client/handlers/UIActivityEventHandler.js +0 -14
- package/dist/common/EventBus.d.ts +0 -12
- package/dist/common/EventBus.d.ts.map +0 -1
- package/dist/common/EventBus.js +0 -26
- package/dist/common/EventBusSingleton.d.ts +0 -4
- package/dist/common/EventBusSingleton.d.ts.map +0 -1
- package/dist/common/EventBusSingleton.js +0 -18
- package/dist/config/environment.d.ts +0 -25
- package/dist/config/environment.d.ts.map +0 -1
- package/dist/config/environment.js +0 -77
- package/dist/controllers/UIEventHandler.d.ts +0 -25
- package/dist/controllers/UIEventHandler.d.ts.map +0 -1
- package/dist/controllers/UIEventHandler.js +0 -50
- package/dist/controllers/UserController.d.ts +0 -9
- package/dist/controllers/UserController.d.ts.map +0 -1
- package/dist/controllers/UserController.js +0 -36
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { Event, Model } from
|
|
2
|
-
import { ActivityLogModelStore } from
|
|
3
|
-
import { ActivityLogEventStore } from
|
|
4
|
-
import { UserModelStore } from
|
|
1
|
+
import { Event, Model } from ".";
|
|
2
|
+
import { ActivityLogModelStore } from ".";
|
|
3
|
+
import { ActivityLogEventStore } from ".";
|
|
4
|
+
import { UserModelStore } from ".";
|
|
5
5
|
export declare class ActivityEventHandler {
|
|
6
6
|
private activityLogModelStore;
|
|
7
7
|
private activityLogEventStore;
|
|
8
8
|
private userModelStore;
|
|
9
9
|
constructor(activityLogModelStore: ActivityLogModelStore, activityLogEventStore: ActivityLogEventStore, userModelStore: UserModelStore);
|
|
10
|
+
private shouldSkipSave;
|
|
10
11
|
createActivityLog(event: Event, existingModel: Model | undefined, updatedModel: Model): Promise<void>;
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=ActivityEventHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityEventHandler.d.ts","sourceRoot":"","sources":["../src/ActivityEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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;AAGnC,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;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;CAsCnB"}
|
|
@@ -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,12 @@ class ActivityEventHandler {
|
|
|
29
37
|
const activityLogEvent = new _1.ActivityLogCreated(activityLogProps);
|
|
30
38
|
const activityLogModel = activityLogEvent.apply();
|
|
31
39
|
await this.activityLogEventStore.addEvent(activityLogEvent);
|
|
32
|
-
|
|
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
|
+
}
|
|
33
46
|
}
|
|
34
47
|
}
|
|
35
48
|
exports.ActivityEventHandler = ActivityEventHandler;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActivityLogEvent } from
|
|
2
|
-
import { Model } from
|
|
1
|
+
import { ActivityLogEvent } from "./common/DomainEvents";
|
|
2
|
+
import { Model } from "./common/Model";
|
|
3
3
|
export declare enum SourceType {
|
|
4
4
|
Transaction = "Transaction",
|
|
5
5
|
User = "User",
|
|
@@ -15,6 +15,7 @@ export interface ActivityLogModel extends Model {
|
|
|
15
15
|
date: Date;
|
|
16
16
|
}
|
|
17
17
|
export interface ActivityLogCreatedProps {
|
|
18
|
+
eventId: string;
|
|
18
19
|
userId: string;
|
|
19
20
|
activityByUid: string;
|
|
20
21
|
sourceStreamId: string;
|
|
@@ -28,6 +29,7 @@ export interface ActivityLogCreatedProps {
|
|
|
28
29
|
systemGenerated: boolean;
|
|
29
30
|
}
|
|
30
31
|
export declare class ActivityLogCreated implements ActivityLogEvent {
|
|
32
|
+
eventId: string;
|
|
31
33
|
userId: string;
|
|
32
34
|
activityByUid: string;
|
|
33
35
|
sourceStreamId: string;
|
|
@@ -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;
|
|
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"}
|
|
@@ -11,6 +11,7 @@ var SourceType;
|
|
|
11
11
|
})(SourceType || (exports.SourceType = SourceType = {}));
|
|
12
12
|
class ActivityLogCreated {
|
|
13
13
|
constructor(props) {
|
|
14
|
+
this.eventId = props.eventId;
|
|
14
15
|
this.userId = props.userId;
|
|
15
16
|
this.activityByUid = props.activityByUid;
|
|
16
17
|
this.sourceStreamId = props.sourceStreamId;
|
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import { UserModelStore } from
|
|
2
|
-
import { UserEventStore } from
|
|
3
|
-
import { FriendModelStore } from
|
|
4
|
-
import { FriendEventStore } from
|
|
5
|
-
import { TransactionModelStore } from
|
|
6
|
-
import { TransactionEventStore } from
|
|
7
|
-
import { GroupModelStore } from
|
|
8
|
-
import { GroupEventStore } from
|
|
9
|
-
import { GroupTransactionModelStore } from
|
|
10
|
-
import { GroupTransactionEventStore } from
|
|
11
|
-
import { ActivityLogModelStore } from
|
|
12
|
-
import { ActivityLogEventStore } from
|
|
13
|
-
import { UserController } from
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import
|
|
17
|
-
import
|
|
1
|
+
import { UserModelStore } from "./store/UserModelStore";
|
|
2
|
+
import { UserEventStore } from "./store/UserEventStore";
|
|
3
|
+
import { FriendModelStore } from "./store/FriendModelStore";
|
|
4
|
+
import { FriendEventStore } from "./store/FriendEventStore";
|
|
5
|
+
import { TransactionModelStore } from "./store/TransactionModelStore";
|
|
6
|
+
import { TransactionEventStore } from "./store/TransactionEventStore";
|
|
7
|
+
import { GroupModelStore } from "./store/GroupModelStore";
|
|
8
|
+
import { GroupEventStore } from "./store/GroupEventStore";
|
|
9
|
+
import { GroupTransactionModelStore } from "./store/GroupTransactionModelStore";
|
|
10
|
+
import { GroupTransactionEventStore } from "./store/GroupTransactionEventStore";
|
|
11
|
+
import { ActivityLogModelStore } from "./store/ActivityLogModelStore";
|
|
12
|
+
import { ActivityLogEventStore } from "./store/ActivityLogEventStore";
|
|
13
|
+
import { UserController } from "./client/controllers/UserController";
|
|
14
|
+
import { FriendController } from "./client/controllers/FriendController";
|
|
15
|
+
import { UIEventHandler } from "./client/handlers/UIEventHandler";
|
|
16
|
+
import { FirebaseAdapter } from "./adapters/FirebaseAdapter";
|
|
17
|
+
import { Event, FriendEventHandler, UserEventHandler, TransactionEventHandler, GroupEventHandler, GroupTransactionEventHandler, ActivityEventHandler } from "./events";
|
|
18
|
+
import { Model } from "./common/Model";
|
|
19
|
+
import type { FirestoreEventData } from "./converters/eventConverter";
|
|
20
|
+
import { ModelChange } from "./ModelChangeEmitter";
|
|
21
|
+
import { Observable } from "rxjs";
|
|
18
22
|
export type StoreConfig = {
|
|
19
23
|
firebaseAdapter: FirebaseAdapter;
|
|
20
24
|
userModelStore: UserModelStore;
|
|
@@ -34,7 +38,15 @@ export declare class EventProcessorSDK {
|
|
|
34
38
|
private static instance;
|
|
35
39
|
private readonly storeConfig;
|
|
36
40
|
private userControllerInstance;
|
|
41
|
+
private friendControllerInstance;
|
|
37
42
|
private uiEventHandlerInstance;
|
|
43
|
+
private userEventHandlerInstance;
|
|
44
|
+
private friendEventHandlerInstance;
|
|
45
|
+
private transactionEventHandlerInstance;
|
|
46
|
+
private groupEventHandlerInstance;
|
|
47
|
+
private groupTransactionEventHandlerInstance;
|
|
48
|
+
private activityEventHandlerInstance;
|
|
49
|
+
private readonly modelChangeEmitter;
|
|
38
50
|
private constructor();
|
|
39
51
|
static initialize(config: StoreConfig): EventProcessorSDK;
|
|
40
52
|
static getInstance(): EventProcessorSDK;
|
|
@@ -42,14 +54,31 @@ export declare class EventProcessorSDK {
|
|
|
42
54
|
static __resetForTesting(): void;
|
|
43
55
|
getStoreConfig(): StoreConfig;
|
|
44
56
|
getUserController(): UserController;
|
|
57
|
+
getFriendController(): FriendController;
|
|
45
58
|
getUIEventHandler(): UIEventHandler;
|
|
59
|
+
getUserEventHandler(): UserEventHandler;
|
|
60
|
+
getFriendEventHandler(): FriendEventHandler;
|
|
61
|
+
getTransactionEventHandler(): TransactionEventHandler;
|
|
62
|
+
getGroupEventHandler(): GroupEventHandler;
|
|
63
|
+
getGroupTransactionEventHandler(): GroupTransactionEventHandler;
|
|
64
|
+
getActivityEventHandler(): ActivityEventHandler;
|
|
46
65
|
getFirebaseAdapter(): FirebaseAdapter;
|
|
66
|
+
getModelChangeObservable(): Observable<ModelChange>;
|
|
67
|
+
emitModelChange(modelType: string, model: Model): void;
|
|
47
68
|
}
|
|
48
69
|
export declare function initializeSDK(config: StoreConfig): EventProcessorSDK;
|
|
49
70
|
export declare function getUserController(): UserController;
|
|
71
|
+
export declare function getFriendController(): FriendController;
|
|
50
72
|
export declare function getUIEventHandler(): UIEventHandler;
|
|
73
|
+
export declare function getUserEventHandler(): UserEventHandler;
|
|
74
|
+
export declare function getFriendEventHandler(): FriendEventHandler;
|
|
75
|
+
export declare function getTransactionEventHandler(): TransactionEventHandler;
|
|
76
|
+
export declare function getGroupEventHandler(): GroupEventHandler;
|
|
77
|
+
export declare function getGroupTransactionEventHandler(): GroupTransactionEventHandler;
|
|
78
|
+
export declare function getActivityEventHandler(): ActivityEventHandler;
|
|
51
79
|
export declare function getFirebaseAdapter(): FirebaseAdapter;
|
|
52
|
-
export declare function
|
|
80
|
+
export declare function getModelChangeObservable(): Observable<ModelChange>;
|
|
81
|
+
export declare function eventToFirestore(event: Event): FirestoreEventData;
|
|
53
82
|
export declare function firestoreToEvent(data: FirestoreEventData): Event;
|
|
54
83
|
export declare function isSDKInitialized(): boolean;
|
|
55
84
|
export declare function __resetSDKForTesting(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventProcessorSDK.d.ts","sourceRoot":"","sources":["../src/EventProcessorSDK.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EventProcessorSDK.d.ts","sourceRoot":"","sources":["../src/EventProcessorSDK.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,18 +3,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.EventProcessorSDK = void 0;
|
|
4
4
|
exports.initializeSDK = initializeSDK;
|
|
5
5
|
exports.getUserController = getUserController;
|
|
6
|
+
exports.getFriendController = getFriendController;
|
|
6
7
|
exports.getUIEventHandler = getUIEventHandler;
|
|
8
|
+
exports.getUserEventHandler = getUserEventHandler;
|
|
9
|
+
exports.getFriendEventHandler = getFriendEventHandler;
|
|
10
|
+
exports.getTransactionEventHandler = getTransactionEventHandler;
|
|
11
|
+
exports.getGroupEventHandler = getGroupEventHandler;
|
|
12
|
+
exports.getGroupTransactionEventHandler = getGroupTransactionEventHandler;
|
|
13
|
+
exports.getActivityEventHandler = getActivityEventHandler;
|
|
7
14
|
exports.getFirebaseAdapter = getFirebaseAdapter;
|
|
15
|
+
exports.getModelChangeObservable = getModelChangeObservable;
|
|
8
16
|
exports.eventToFirestore = eventToFirestore;
|
|
9
17
|
exports.firestoreToEvent = firestoreToEvent;
|
|
10
18
|
exports.isSDKInitialized = isSDKInitialized;
|
|
11
19
|
exports.__resetSDKForTesting = __resetSDKForTesting;
|
|
12
20
|
const UserController_1 = require("./client/controllers/UserController");
|
|
21
|
+
const FriendController_1 = require("./client/controllers/FriendController");
|
|
13
22
|
const UIEventHandler_1 = require("./client/handlers/UIEventHandler");
|
|
14
23
|
const eventConverter_1 = require("./converters/eventConverter");
|
|
24
|
+
const events_1 = require("./events");
|
|
25
|
+
const ModelChangeEmitter_1 = require("./ModelChangeEmitter");
|
|
15
26
|
class EventProcessorSDK {
|
|
16
27
|
constructor(config) {
|
|
17
28
|
this.storeConfig = config;
|
|
29
|
+
this.modelChangeEmitter = new ModelChangeEmitter_1.ModelChangeEmitter();
|
|
18
30
|
}
|
|
19
31
|
static initialize(config) {
|
|
20
32
|
EventProcessorSDK.instance = new EventProcessorSDK(config);
|
|
@@ -22,7 +34,7 @@ class EventProcessorSDK {
|
|
|
22
34
|
}
|
|
23
35
|
static getInstance() {
|
|
24
36
|
if (!EventProcessorSDK.instance) {
|
|
25
|
-
throw new Error(
|
|
37
|
+
throw new Error("EventProcessorSDK not initialized. Call EventProcessorSDK.initialize() first.");
|
|
26
38
|
}
|
|
27
39
|
return EventProcessorSDK.instance;
|
|
28
40
|
}
|
|
@@ -37,19 +49,68 @@ class EventProcessorSDK {
|
|
|
37
49
|
}
|
|
38
50
|
getUserController() {
|
|
39
51
|
if (!this.userControllerInstance) {
|
|
40
|
-
this.userControllerInstance = new UserController_1.UserController(
|
|
52
|
+
this.userControllerInstance = new UserController_1.UserController();
|
|
41
53
|
}
|
|
42
54
|
return this.userControllerInstance;
|
|
43
55
|
}
|
|
56
|
+
getFriendController() {
|
|
57
|
+
if (!this.friendControllerInstance) {
|
|
58
|
+
this.friendControllerInstance = new FriendController_1.FriendController();
|
|
59
|
+
}
|
|
60
|
+
return this.friendControllerInstance;
|
|
61
|
+
}
|
|
44
62
|
getUIEventHandler() {
|
|
45
63
|
if (!this.uiEventHandlerInstance) {
|
|
46
|
-
this.uiEventHandlerInstance = new UIEventHandler_1.UIEventHandler(
|
|
64
|
+
this.uiEventHandlerInstance = new UIEventHandler_1.UIEventHandler();
|
|
47
65
|
}
|
|
48
66
|
return this.uiEventHandlerInstance;
|
|
49
67
|
}
|
|
68
|
+
getUserEventHandler() {
|
|
69
|
+
if (!this.userEventHandlerInstance) {
|
|
70
|
+
this.userEventHandlerInstance = new events_1.UserEventHandler(this.storeConfig.userModelStore, this.storeConfig.userEventStore, this.getActivityEventHandler());
|
|
71
|
+
}
|
|
72
|
+
return this.userEventHandlerInstance;
|
|
73
|
+
}
|
|
74
|
+
getFriendEventHandler() {
|
|
75
|
+
if (!this.friendEventHandlerInstance) {
|
|
76
|
+
this.friendEventHandlerInstance = new events_1.FriendEventHandler(this.storeConfig.friendModelStore, this.storeConfig.userModelStore, this.storeConfig.friendEventStore, this.storeConfig.userEventStore, this.getActivityEventHandler());
|
|
77
|
+
}
|
|
78
|
+
return this.friendEventHandlerInstance;
|
|
79
|
+
}
|
|
80
|
+
getTransactionEventHandler() {
|
|
81
|
+
if (!this.transactionEventHandlerInstance) {
|
|
82
|
+
this.transactionEventHandlerInstance = new events_1.TransactionEventHandler(this.storeConfig.transactionModelStore, this.storeConfig.transactionEventStore, this.storeConfig.userModelStore, this.getActivityEventHandler());
|
|
83
|
+
}
|
|
84
|
+
return this.transactionEventHandlerInstance;
|
|
85
|
+
}
|
|
86
|
+
getGroupEventHandler() {
|
|
87
|
+
if (!this.groupEventHandlerInstance) {
|
|
88
|
+
this.groupEventHandlerInstance = new events_1.GroupEventHandler(this.storeConfig.groupModelStore, this.storeConfig.friendModelStore, this.storeConfig.userModelStore, this.storeConfig.groupEventStore, this.storeConfig.friendEventStore, this.getActivityEventHandler());
|
|
89
|
+
}
|
|
90
|
+
return this.groupEventHandlerInstance;
|
|
91
|
+
}
|
|
92
|
+
getGroupTransactionEventHandler() {
|
|
93
|
+
if (!this.groupTransactionEventHandlerInstance) {
|
|
94
|
+
this.groupTransactionEventHandlerInstance =
|
|
95
|
+
new events_1.GroupTransactionEventHandler(this.storeConfig.groupTransactionModelStore, this.storeConfig.groupTransactionEventStore, this.storeConfig.groupModelStore, this.storeConfig.transactionEventStore, this.storeConfig.transactionModelStore, this.getActivityEventHandler());
|
|
96
|
+
}
|
|
97
|
+
return this.groupTransactionEventHandlerInstance;
|
|
98
|
+
}
|
|
99
|
+
getActivityEventHandler() {
|
|
100
|
+
if (!this.activityEventHandlerInstance) {
|
|
101
|
+
this.activityEventHandlerInstance = new events_1.ActivityEventHandler(this.storeConfig.activityLogModelStore, this.storeConfig.activityLogEventStore, this.storeConfig.userModelStore);
|
|
102
|
+
}
|
|
103
|
+
return this.activityEventHandlerInstance;
|
|
104
|
+
}
|
|
50
105
|
getFirebaseAdapter() {
|
|
51
106
|
return this.storeConfig.firebaseAdapter;
|
|
52
107
|
}
|
|
108
|
+
getModelChangeObservable() {
|
|
109
|
+
return this.modelChangeEmitter.asObservable();
|
|
110
|
+
}
|
|
111
|
+
emitModelChange(modelType, model) {
|
|
112
|
+
this.modelChangeEmitter.emit(modelType, model);
|
|
113
|
+
}
|
|
53
114
|
}
|
|
54
115
|
exports.EventProcessorSDK = EventProcessorSDK;
|
|
55
116
|
function initializeSDK(config) {
|
|
@@ -58,15 +119,39 @@ function initializeSDK(config) {
|
|
|
58
119
|
function getUserController() {
|
|
59
120
|
return EventProcessorSDK.getInstance().getUserController();
|
|
60
121
|
}
|
|
122
|
+
function getFriendController() {
|
|
123
|
+
return EventProcessorSDK.getInstance().getFriendController();
|
|
124
|
+
}
|
|
61
125
|
function getUIEventHandler() {
|
|
62
126
|
return EventProcessorSDK.getInstance().getUIEventHandler();
|
|
63
127
|
}
|
|
128
|
+
function getUserEventHandler() {
|
|
129
|
+
return EventProcessorSDK.getInstance().getUserEventHandler();
|
|
130
|
+
}
|
|
131
|
+
function getFriendEventHandler() {
|
|
132
|
+
return EventProcessorSDK.getInstance().getFriendEventHandler();
|
|
133
|
+
}
|
|
134
|
+
function getTransactionEventHandler() {
|
|
135
|
+
return EventProcessorSDK.getInstance().getTransactionEventHandler();
|
|
136
|
+
}
|
|
137
|
+
function getGroupEventHandler() {
|
|
138
|
+
return EventProcessorSDK.getInstance().getGroupEventHandler();
|
|
139
|
+
}
|
|
140
|
+
function getGroupTransactionEventHandler() {
|
|
141
|
+
return EventProcessorSDK.getInstance().getGroupTransactionEventHandler();
|
|
142
|
+
}
|
|
143
|
+
function getActivityEventHandler() {
|
|
144
|
+
return EventProcessorSDK.getInstance().getActivityEventHandler();
|
|
145
|
+
}
|
|
64
146
|
function getFirebaseAdapter() {
|
|
65
147
|
return EventProcessorSDK.getInstance().getFirebaseAdapter();
|
|
66
148
|
}
|
|
67
|
-
function
|
|
149
|
+
function getModelChangeObservable() {
|
|
150
|
+
return EventProcessorSDK.getInstance().getModelChangeObservable();
|
|
151
|
+
}
|
|
152
|
+
function eventToFirestore(event) {
|
|
68
153
|
const adapter = getFirebaseAdapter();
|
|
69
|
-
return (0, eventConverter_1.eventToFirestore)(event,
|
|
154
|
+
return (0, eventConverter_1.eventToFirestore)(event, adapter);
|
|
70
155
|
}
|
|
71
156
|
function firestoreToEvent(data) {
|
|
72
157
|
const adapter = getFirebaseAdapter();
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import { FriendCreated,
|
|
2
|
-
import {
|
|
3
|
-
import { UserModelStore } from '.';
|
|
4
|
-
import { FriendEventStore } from '.';
|
|
5
|
-
import { UserEventStore } from '.';
|
|
6
|
-
import { ActivityEventHandler } from './ActivityEventHandler';
|
|
1
|
+
import { FriendCreated, FriendEvent, FriendEventStore, FriendModelStore, UserEventStore, UserModelStore } from ".";
|
|
2
|
+
import { ActivityEventHandler } from "./ActivityEventHandler";
|
|
7
3
|
export declare class FriendEventHandler {
|
|
8
4
|
private modelStore;
|
|
9
5
|
private userModelStore;
|
|
@@ -11,11 +7,8 @@ export declare class FriendEventHandler {
|
|
|
11
7
|
private userEventStore;
|
|
12
8
|
private activityEventHandler?;
|
|
13
9
|
constructor(modelStore: FriendModelStore, userModelStore: UserModelStore, friendEventStore: FriendEventStore, userEventStore: UserEventStore, activityEventHandler?: ActivityEventHandler | undefined);
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
handleFriendDeleted(event: FriendDeleted): Promise<FriendModel>;
|
|
18
|
-
handleFriendIdAdded(event: FriendIdAdded): Promise<FriendModel>;
|
|
19
|
-
handleFriendIdRemoved(event: FriendIdRemoved): Promise<FriendModel>;
|
|
10
|
+
private shouldSkipSave;
|
|
11
|
+
handleEvent(event: FriendEvent): Promise<void>;
|
|
12
|
+
handleFriendCreated(event: FriendCreated): Promise<void>;
|
|
20
13
|
}
|
|
21
14
|
//# 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,
|
|
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,EAEjB,MAAM,GAAG,CAAC;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAK9D,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;IAGvD,OAAO,CAAC,cAAc;IAahB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC9C,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CA0LjE"}
|
|
@@ -4,6 +4,7 @@ exports.FriendEventHandler = void 0;
|
|
|
4
4
|
const _1 = require(".");
|
|
5
5
|
const DomainEvents_1 = require("./common/DomainEvents");
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
|
+
const EventProcessorSDK_1 = require("./EventProcessorSDK");
|
|
7
8
|
class FriendEventHandler {
|
|
8
9
|
constructor(modelStore, userModelStore, friendEventStore, userEventStore, activityEventHandler) {
|
|
9
10
|
this.modelStore = modelStore;
|
|
@@ -12,30 +13,45 @@ class FriendEventHandler {
|
|
|
12
13
|
this.userEventStore = userEventStore;
|
|
13
14
|
this.activityEventHandler = activityEventHandler;
|
|
14
15
|
}
|
|
16
|
+
shouldSkipSave(existingModel, updatedModel) {
|
|
17
|
+
if (!existingModel) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
return (existingModel.streamId === updatedModel.streamId &&
|
|
21
|
+
existingModel.version === updatedModel.version);
|
|
22
|
+
}
|
|
15
23
|
async handleEvent(event) {
|
|
16
24
|
const eventType = event.constructor.name;
|
|
17
25
|
if (!(0, DomainEvents_1.isValidFriendEventType)(eventType)) {
|
|
18
26
|
throw new Error(`Unknown friend event type: ${eventType}`);
|
|
19
27
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
if (!_1.residence.isClient && eventType === "FriendCreated") {
|
|
29
|
+
return await this.handleFriendCreated(event);
|
|
30
|
+
}
|
|
31
|
+
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
32
|
+
const updatedModel = event.apply(existingModel);
|
|
33
|
+
if (!this.shouldSkipSave(existingModel, updatedModel)) {
|
|
34
|
+
await this.modelStore.save(updatedModel);
|
|
35
|
+
if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
|
|
36
|
+
EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", updatedModel);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (_1.residence.isClient) {
|
|
40
|
+
await this.friendEventStore.addEvent(event);
|
|
41
|
+
if (this.activityEventHandler) {
|
|
42
|
+
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
43
|
+
}
|
|
33
44
|
}
|
|
34
45
|
}
|
|
35
46
|
async handleFriendCreated(event) {
|
|
36
47
|
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
37
48
|
const updatedModel = event.apply(existingModel);
|
|
38
|
-
|
|
49
|
+
if (!this.shouldSkipSave(existingModel, updatedModel)) {
|
|
50
|
+
await this.modelStore.save(updatedModel);
|
|
51
|
+
if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
|
|
52
|
+
EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", updatedModel);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
39
55
|
// Check if friend is already a user (try phone first, then email)
|
|
40
56
|
let friendUser = null;
|
|
41
57
|
if (event.friendPhoneNumber) {
|
|
@@ -48,6 +64,7 @@ class FriendEventHandler {
|
|
|
48
64
|
if (friendUser) {
|
|
49
65
|
// Create FriendIdAdded event for current user
|
|
50
66
|
const friendIdAddedEvent = new _1.FriendIdAdded({
|
|
67
|
+
eventId: (0, uuid_1.v4)(),
|
|
51
68
|
userId: event.userId,
|
|
52
69
|
friendId: friendUser.userId,
|
|
53
70
|
createdAt: new Date(),
|
|
@@ -58,10 +75,16 @@ class FriendEventHandler {
|
|
|
58
75
|
});
|
|
59
76
|
await this.friendEventStore.addEvent(friendIdAddedEvent);
|
|
60
77
|
const modelWithFriendId = friendIdAddedEvent.apply(updatedModel);
|
|
61
|
-
|
|
78
|
+
if (!this.shouldSkipSave(updatedModel, modelWithFriendId)) {
|
|
79
|
+
await this.modelStore.save(modelWithFriendId);
|
|
80
|
+
if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
|
|
81
|
+
EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", modelWithFriendId);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
62
84
|
const primaryUser = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.userId);
|
|
63
85
|
if (primaryUser) {
|
|
64
86
|
const reciprocalFriendCreated = new _1.FriendCreated({
|
|
87
|
+
eventId: (0, uuid_1.v4)(),
|
|
65
88
|
userId: friendUser.userId,
|
|
66
89
|
friendEmail: primaryUser.email,
|
|
67
90
|
friendPhoneNumber: primaryUser.phoneNumber,
|
|
@@ -70,20 +93,28 @@ class FriendEventHandler {
|
|
|
70
93
|
groupId: event.groupId,
|
|
71
94
|
createdAt: new Date(),
|
|
72
95
|
createdBy: friendUser.userId,
|
|
73
|
-
streamId:
|
|
96
|
+
streamId: (0, uuid_1.v4)(),
|
|
74
97
|
version: 1,
|
|
75
98
|
systemGenerated: true,
|
|
76
99
|
});
|
|
77
100
|
await this.friendEventStore.addEvent(reciprocalFriendCreated);
|
|
78
101
|
const reciprocalModel = reciprocalFriendCreated.apply(undefined);
|
|
79
|
-
|
|
102
|
+
if (!this.shouldSkipSave(undefined, reciprocalModel)) {
|
|
103
|
+
await this.modelStore.save(reciprocalModel);
|
|
104
|
+
if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
|
|
105
|
+
EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", reciprocalModel);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (this.activityEventHandler) {
|
|
109
|
+
await this.activityEventHandler.createActivityLog(reciprocalFriendCreated, undefined, reciprocalModel);
|
|
110
|
+
}
|
|
80
111
|
}
|
|
81
|
-
return modelWithFriendId;
|
|
82
112
|
}
|
|
83
113
|
else {
|
|
84
114
|
// Friend user not found - create placeholder user
|
|
85
|
-
const placeholderStreamId =
|
|
115
|
+
const placeholderStreamId = (0, uuid_1.v4)();
|
|
86
116
|
const placeholderUserCreated = new _1.PlaceholderUserCreated({
|
|
117
|
+
eventId: (0, uuid_1.v4)(),
|
|
87
118
|
userId: placeholderStreamId,
|
|
88
119
|
displayName: event.friendDisplayName,
|
|
89
120
|
phoneNumber: event.friendPhoneNumber,
|
|
@@ -96,9 +127,12 @@ class FriendEventHandler {
|
|
|
96
127
|
});
|
|
97
128
|
await this.userEventStore.addEvent(placeholderUserCreated);
|
|
98
129
|
const placeholderUser = placeholderUserCreated.apply(undefined);
|
|
99
|
-
|
|
130
|
+
if (!this.shouldSkipSave(undefined, placeholderUser)) {
|
|
131
|
+
await this.userModelStore.save(placeholderUser);
|
|
132
|
+
}
|
|
100
133
|
// Link primary user to placeholder
|
|
101
134
|
const friendIdAddedEvent = new _1.FriendIdAdded({
|
|
135
|
+
eventId: (0, uuid_1.v4)(),
|
|
102
136
|
userId: event.userId,
|
|
103
137
|
friendId: placeholderStreamId,
|
|
104
138
|
createdAt: new Date(),
|
|
@@ -109,12 +143,18 @@ class FriendEventHandler {
|
|
|
109
143
|
});
|
|
110
144
|
await this.friendEventStore.addEvent(friendIdAddedEvent);
|
|
111
145
|
const modelWithPlaceholderId = friendIdAddedEvent.apply(updatedModel);
|
|
112
|
-
|
|
146
|
+
if (!this.shouldSkipSave(updatedModel, modelWithPlaceholderId)) {
|
|
147
|
+
await this.modelStore.save(modelWithPlaceholderId);
|
|
148
|
+
if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
|
|
149
|
+
EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", modelWithPlaceholderId);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
113
152
|
// Create reciprocal friendship for placeholder user
|
|
114
153
|
const primaryUser = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.userId);
|
|
115
154
|
if (primaryUser) {
|
|
116
155
|
const primaryUserModel = primaryUser;
|
|
117
156
|
const reciprocalFriendCreated = new _1.FriendCreated({
|
|
157
|
+
eventId: (0, uuid_1.v4)(),
|
|
118
158
|
userId: placeholderStreamId,
|
|
119
159
|
friendEmail: primaryUserModel.email,
|
|
120
160
|
friendPhoneNumber: primaryUserModel.phoneNumber,
|
|
@@ -123,52 +163,23 @@ class FriendEventHandler {
|
|
|
123
163
|
groupId: event.groupId,
|
|
124
164
|
createdAt: new Date(),
|
|
125
165
|
createdBy: placeholderStreamId,
|
|
126
|
-
streamId:
|
|
166
|
+
streamId: (0, uuid_1.v4)(),
|
|
127
167
|
version: 1,
|
|
128
168
|
systemGenerated: true,
|
|
129
169
|
});
|
|
130
170
|
await this.friendEventStore.addEvent(reciprocalFriendCreated);
|
|
131
171
|
const reciprocalModel = reciprocalFriendCreated.apply(undefined);
|
|
132
|
-
|
|
172
|
+
if (!this.shouldSkipSave(undefined, reciprocalModel)) {
|
|
173
|
+
await this.modelStore.save(reciprocalModel);
|
|
174
|
+
if ((0, EventProcessorSDK_1.isSDKInitialized)()) {
|
|
175
|
+
EventProcessorSDK_1.EventProcessorSDK.getInstance().emitModelChange("FriendModel", reciprocalModel);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (this.activityEventHandler) {
|
|
179
|
+
await this.activityEventHandler.createActivityLog(reciprocalFriendCreated, undefined, reciprocalModel);
|
|
180
|
+
}
|
|
133
181
|
}
|
|
134
|
-
return modelWithPlaceholderId;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
async handleFriendUpdated(event) {
|
|
138
|
-
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
139
|
-
const updatedModel = event.apply(existingModel);
|
|
140
|
-
await this.modelStore.save(updatedModel);
|
|
141
|
-
if (this.activityEventHandler) {
|
|
142
|
-
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
143
|
-
}
|
|
144
|
-
return updatedModel;
|
|
145
|
-
}
|
|
146
|
-
async handleFriendDeleted(event) {
|
|
147
|
-
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
148
|
-
const updatedModel = event.apply(existingModel);
|
|
149
|
-
await this.modelStore.save(updatedModel);
|
|
150
|
-
if (this.activityEventHandler) {
|
|
151
|
-
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
152
|
-
}
|
|
153
|
-
return updatedModel;
|
|
154
|
-
}
|
|
155
|
-
async handleFriendIdAdded(event) {
|
|
156
|
-
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
157
|
-
const updatedModel = event.apply(existingModel);
|
|
158
|
-
await this.modelStore.save(updatedModel);
|
|
159
|
-
if (this.activityEventHandler) {
|
|
160
|
-
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
161
|
-
}
|
|
162
|
-
return updatedModel;
|
|
163
|
-
}
|
|
164
|
-
async handleFriendIdRemoved(event) {
|
|
165
|
-
const existingModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
166
|
-
const updatedModel = event.apply(existingModel);
|
|
167
|
-
await this.modelStore.save(updatedModel);
|
|
168
|
-
if (this.activityEventHandler) {
|
|
169
|
-
await this.activityEventHandler.createActivityLog(event, existingModel, updatedModel);
|
|
170
182
|
}
|
|
171
|
-
return updatedModel;
|
|
172
183
|
}
|
|
173
184
|
}
|
|
174
185
|
exports.FriendEventHandler = FriendEventHandler;
|