@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.
- package/dist/ActivityEventHandler.d.ts +5 -5
- package/dist/ActivityEventHandler.d.ts.map +1 -1
- package/dist/ActivityEventHandler.js +27 -1
- package/dist/ActivityLogEvents.d.ts.map +1 -1
- package/dist/BaseEventHandler.d.ts +6 -0
- package/dist/BaseEventHandler.d.ts.map +1 -0
- package/dist/BaseEventHandler.js +2 -0
- package/dist/EventProcessorSDK.d.ts +30 -1
- package/dist/EventProcessorSDK.d.ts.map +1 -1
- package/dist/EventProcessorSDK.js +88 -5
- package/dist/FriendEventHandler.d.ts +5 -2
- package/dist/FriendEventHandler.d.ts.map +1 -1
- package/dist/FriendEventHandler.js +49 -15
- package/dist/GroupEventHandler.d.ts +5 -7
- package/dist/GroupEventHandler.d.ts.map +1 -1
- package/dist/GroupEventHandler.js +96 -18
- package/dist/GroupEvents.d.ts.map +1 -1
- package/dist/GroupTransactionEventHandler.d.ts +4 -1
- package/dist/GroupTransactionEventHandler.d.ts.map +1 -1
- package/dist/GroupTransactionEventHandler.js +57 -13
- package/dist/GroupTransactionEvents.d.ts.map +1 -1
- 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 +6 -4
- package/dist/TransactionEventHandler.d.ts.map +1 -1
- package/dist/TransactionEventHandler.js +33 -21
- package/dist/TransactionEvents.d.ts.map +1 -1
- package/dist/UserEventHandler.d.ts +5 -2
- package/dist/UserEventHandler.d.ts.map +1 -1
- package/dist/UserEventHandler.js +32 -28
- package/dist/UserEvents.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMActivityLogEventStore.d.ts +2 -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 +2 -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 +2 -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 +2 -3
- package/dist/__tests__/test-helpers/IMFriendModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMFriendModelStore.js +1 -3
- package/dist/__tests__/test-helpers/IMGroupEventStore.d.ts +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -3
- package/dist/__tests__/test-helpers/IMUserModelStore.d.ts.map +1 -1
- package/dist/__tests__/test-helpers/IMUserModelStore.js +1 -3
- package/dist/client/controllers/FriendController.d.ts +6 -5
- package/dist/client/controllers/FriendController.d.ts.map +1 -1
- package/dist/client/controllers/FriendController.js +23 -12
- package/dist/client/controllers/TransactionController.d.ts +12 -0
- package/dist/client/controllers/TransactionController.d.ts.map +1 -0
- package/dist/client/controllers/TransactionController.js +214 -0
- package/dist/client/controllers/UserController.d.ts.map +1 -1
- package/dist/client/controllers/UserController.js +3 -23
- package/dist/client/handlers/UIEventHandler.d.ts +3 -22
- package/dist/client/handlers/UIEventHandler.d.ts.map +1 -1
- package/dist/client/handlers/UIEventHandler.js +5 -44
- package/dist/common/DomainEvents.d.ts +0 -70
- package/dist/common/DomainEvents.d.ts.map +1 -1
- package/dist/common/DomainEvents.js +0 -89
- package/dist/contracts/expenses/index.d.ts.map +1 -1
- package/dist/contracts/friends/index.d.ts +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/transactions/index.d.ts +1 -1
- package/dist/contracts/transactions/index.d.ts.map +1 -1
- package/dist/converters/ActivityLogConverters.d.ts +9 -0
- package/dist/converters/ActivityLogConverters.d.ts.map +1 -0
- package/dist/converters/ActivityLogConverters.js +39 -0
- package/dist/converters/EventConverterCore.d.ts +67 -0
- package/dist/converters/EventConverterCore.d.ts.map +1 -0
- package/dist/converters/EventConverterCore.js +59 -0
- package/dist/converters/FriendConverters.d.ts +33 -0
- package/dist/converters/FriendConverters.d.ts.map +1 -0
- package/dist/converters/FriendConverters.js +142 -0
- package/dist/converters/GroupConverters.d.ts +39 -0
- package/dist/converters/GroupConverters.d.ts.map +1 -0
- package/dist/converters/GroupConverters.js +160 -0
- package/dist/converters/GroupTransactionConverters.d.ts +57 -0
- package/dist/converters/GroupTransactionConverters.d.ts.map +1 -0
- package/dist/converters/GroupTransactionConverters.js +249 -0
- package/dist/converters/TransactionConverters.d.ts +51 -0
- package/dist/converters/TransactionConverters.d.ts.map +1 -0
- package/dist/converters/TransactionConverters.js +234 -0
- package/dist/converters/UserConverters.d.ts +51 -0
- package/dist/converters/UserConverters.d.ts.map +1 -0
- package/dist/converters/UserConverters.js +226 -0
- package/dist/converters/eventConverter.d.ts +10 -15
- package/dist/converters/eventConverter.d.ts.map +1 -1
- package/dist/converters/eventConverter.js +96 -352
- package/dist/events.d.ts +0 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +1 -3
- package/dist/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -33
- package/dist/store/ActivityLogEventStore.d.ts +2 -2
- package/dist/store/ActivityLogEventStore.d.ts.map +1 -1
- package/dist/store/ActivityLogEventStore.js +0 -4
- package/dist/store/ActivityLogModelStore.d.ts +4 -4
- package/dist/store/ActivityLogModelStore.d.ts.map +1 -1
- package/dist/store/ActivityLogModelStore.js +0 -5
- package/dist/store/FriendEventStore.d.ts +2 -2
- package/dist/store/FriendEventStore.d.ts.map +1 -1
- package/dist/store/FriendEventStore.js +0 -4
- package/dist/store/FriendModelStore.d.ts +9 -9
- package/dist/store/FriendModelStore.d.ts.map +1 -1
- package/dist/store/FriendModelStore.js +0 -5
- package/dist/store/GroupEventStore.d.ts +2 -2
- package/dist/store/GroupEventStore.d.ts.map +1 -1
- package/dist/store/GroupEventStore.js +0 -4
- package/dist/store/GroupModelStore.d.ts +6 -6
- package/dist/store/GroupModelStore.d.ts.map +1 -1
- package/dist/store/GroupModelStore.js +0 -5
- package/dist/store/GroupTransactionEventStore.d.ts +2 -2
- package/dist/store/GroupTransactionEventStore.d.ts.map +1 -1
- package/dist/store/GroupTransactionEventStore.js +0 -4
- package/dist/store/GroupTransactionModelStore.d.ts +6 -6
- package/dist/store/GroupTransactionModelStore.d.ts.map +1 -1
- package/dist/store/GroupTransactionModelStore.js +0 -5
- package/dist/store/ModelStore.d.ts +4 -4
- package/dist/store/ModelStore.d.ts.map +1 -1
- package/dist/store/ModelStore.js +0 -4
- package/dist/store/TransactionEventStore.d.ts +2 -2
- package/dist/store/TransactionEventStore.d.ts.map +1 -1
- package/dist/store/TransactionEventStore.js +0 -4
- package/dist/store/TransactionModelStore.d.ts +6 -6
- package/dist/store/TransactionModelStore.d.ts.map +1 -1
- package/dist/store/TransactionModelStore.js +0 -5
- package/dist/store/UserEventStore.d.ts +2 -2
- package/dist/store/UserEventStore.d.ts.map +1 -1
- package/dist/store/UserEventStore.js +0 -4
- package/dist/store/UserModelStore.d.ts +7 -7
- package/dist/store/UserModelStore.d.ts.map +1 -1
- package/dist/store/UserModelStore.js +0 -5
- package/package.json +1 -1
- package/dist/__tests__/e2e/setup/firebaseEmulator.d.ts +0 -3
- package/dist/__tests__/e2e/setup/firebaseEmulator.d.ts.map +0 -1
- package/dist/__tests__/e2e/setup/firebaseEmulator.js +0 -87
- package/dist/__tests__/e2e/setup/firestoreStores.d.ts +0 -28
- package/dist/__tests__/e2e/setup/firestoreStores.d.ts.map +0 -1
- package/dist/__tests__/e2e/setup/firestoreStores.js +0 -276
- package/dist/__tests__/e2e/setup/firestoreTestHelpers.d.ts +0 -15
- package/dist/__tests__/e2e/setup/firestoreTestHelpers.d.ts.map +0 -1
- package/dist/__tests__/e2e/setup/firestoreTestHelpers.js +0 -167
- 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
|
@@ -9,9 +9,8 @@ class FriendController {
|
|
|
9
9
|
return EventProcessorSDK_1.EventProcessorSDK.getInstance().getStoreConfig()
|
|
10
10
|
.friendModelStore;
|
|
11
11
|
}
|
|
12
|
-
get
|
|
13
|
-
return EventProcessorSDK_1.EventProcessorSDK.getInstance().
|
|
14
|
-
.friendEventStore;
|
|
12
|
+
get friendEventHandler() {
|
|
13
|
+
return EventProcessorSDK_1.EventProcessorSDK.getInstance().getFriendEventHandler();
|
|
15
14
|
}
|
|
16
15
|
async addFriend(userId, request) {
|
|
17
16
|
if (!request.email && !request.phoneNumber) {
|
|
@@ -33,9 +32,8 @@ class FriendController {
|
|
|
33
32
|
version: 1,
|
|
34
33
|
systemGenerated: false,
|
|
35
34
|
});
|
|
36
|
-
await this.
|
|
37
|
-
|
|
38
|
-
return this.toFriendResponse(friendModel);
|
|
35
|
+
await this.friendEventHandler.handleEvent(event);
|
|
36
|
+
return streamId;
|
|
39
37
|
}
|
|
40
38
|
async updateFriend(userId, friendId, request) {
|
|
41
39
|
const friendModel = await this.modelStore.findByUserIdAndFriendIdAndDeletedIsFalse(userId, friendId);
|
|
@@ -52,7 +50,7 @@ class FriendController {
|
|
|
52
50
|
request.name.trim() !== "" &&
|
|
53
51
|
request.name !== friendModel.friendDisplayName);
|
|
54
52
|
if (!hasChanges) {
|
|
55
|
-
return
|
|
53
|
+
return;
|
|
56
54
|
}
|
|
57
55
|
const createdAt = new Date();
|
|
58
56
|
const event = new FriendEvents_1.FriendUpdated({
|
|
@@ -69,9 +67,7 @@ class FriendController {
|
|
|
69
67
|
version: friendModel.version + 1,
|
|
70
68
|
systemGenerated: false,
|
|
71
69
|
});
|
|
72
|
-
await this.
|
|
73
|
-
const updatedModel = event.apply(friendModel);
|
|
74
|
-
return this.toFriendResponse(updatedModel);
|
|
70
|
+
await this.friendEventHandler.handleEvent(event);
|
|
75
71
|
}
|
|
76
72
|
async deleteFriend(userId, friendId) {
|
|
77
73
|
const friendModel = await this.modelStore.findByUserIdAndFriendIdAndDeletedIsFalse(userId, friendId);
|
|
@@ -88,7 +84,7 @@ class FriendController {
|
|
|
88
84
|
version: friendModel.version + 1,
|
|
89
85
|
systemGenerated: false,
|
|
90
86
|
});
|
|
91
|
-
await this.
|
|
87
|
+
await this.friendEventHandler.handleEvent(event);
|
|
92
88
|
}
|
|
93
89
|
async getFriend(userId, friendId) {
|
|
94
90
|
const friendModel = await this.modelStore.findByUserIdAndFriendIdAndDeletedIsFalse(userId, friendId);
|
|
@@ -97,9 +93,24 @@ class FriendController {
|
|
|
97
93
|
}
|
|
98
94
|
return this.toFriendResponse(friendModel);
|
|
99
95
|
}
|
|
96
|
+
async getFriendByStreamId(streamId) {
|
|
97
|
+
const friendModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(streamId);
|
|
98
|
+
if (!friendModel) {
|
|
99
|
+
throw new Error(`Friend not found: ${streamId}`);
|
|
100
|
+
}
|
|
101
|
+
return this.toFriendResponse(friendModel);
|
|
102
|
+
}
|
|
100
103
|
async getAllFriends(userId) {
|
|
101
104
|
const friendModels = await this.modelStore.findAllByUserIdWhereDeletedIsFalse(userId);
|
|
102
|
-
|
|
105
|
+
const friends = friendModels.map((friendModel) => this.toFriendResponse(friendModel));
|
|
106
|
+
const emptyBalance = {
|
|
107
|
+
main: undefined,
|
|
108
|
+
other: [],
|
|
109
|
+
};
|
|
110
|
+
return {
|
|
111
|
+
friends,
|
|
112
|
+
balance: emptyBalance,
|
|
113
|
+
};
|
|
103
114
|
}
|
|
104
115
|
toFriendResponse(friendModel) {
|
|
105
116
|
const emptyBalance = {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TransactionCreateRequest, TransactionResponse, TransactionUpdateRequest } from "../../contracts/transactions";
|
|
2
|
+
export declare class TransactionController {
|
|
3
|
+
private get modelStore();
|
|
4
|
+
private get transactionEventHandler();
|
|
5
|
+
private calculateAmount;
|
|
6
|
+
addTransaction(userId: string, request: TransactionCreateRequest): Promise<string>;
|
|
7
|
+
updateTransaction(userId: string, transactionId: string, request: TransactionUpdateRequest): Promise<void>;
|
|
8
|
+
deleteTransaction(userId: string, transactionId: string): Promise<void>;
|
|
9
|
+
getTransaction(userId: string, transactionId: string): Promise<TransactionResponse>;
|
|
10
|
+
private toTransactionResponse;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=TransactionController.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransactionController.d.ts","sourceRoot":"","sources":["../../../src/client/controllers/TransactionController.ts"],"names":[],"mappings":"AAWA,OAAO,EACH,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EAC3B,MAAM,8BAA8B,CAAC;AAItC,qBAAa,qBAAqB;IAC9B,OAAO,KAAK,UAAU,GAGrB;IAED,OAAO,KAAK,uBAAuB,GAElC;IAED,OAAO,CAAC,eAAe;IAYjB,cAAc,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,MAAM,CAAC;IAgCZ,iBAAiB,CACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,wBAAwB,GAClC,OAAO,CAAC,IAAI,CAAC;IAuHV,iBAAiB,CACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IA6BV,cAAc,CAChB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAkB/B,OAAO,CAAC,qBAAqB;CAuChC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionController = void 0;
|
|
4
|
+
const TransactionEvents_1 = require("../../TransactionEvents");
|
|
5
|
+
const EventProcessorSDK_1 = require("../../EventProcessorSDK");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
class TransactionController {
|
|
8
|
+
get modelStore() {
|
|
9
|
+
return EventProcessorSDK_1.EventProcessorSDK.getInstance().getStoreConfig()
|
|
10
|
+
.transactionModelStore;
|
|
11
|
+
}
|
|
12
|
+
get transactionEventHandler() {
|
|
13
|
+
return EventProcessorSDK_1.EventProcessorSDK.getInstance().getTransactionEventHandler();
|
|
14
|
+
}
|
|
15
|
+
calculateAmount(splitType, totalAmount) {
|
|
16
|
+
if (splitType === TransactionEvents_1.SplitType.TheyOweYouAll ||
|
|
17
|
+
splitType === TransactionEvents_1.SplitType.YouOweThemAll ||
|
|
18
|
+
splitType === TransactionEvents_1.SplitType.YouPaidToSettle ||
|
|
19
|
+
splitType === TransactionEvents_1.SplitType.TheyPaidToSettle) {
|
|
20
|
+
return totalAmount;
|
|
21
|
+
}
|
|
22
|
+
return totalAmount / 2;
|
|
23
|
+
}
|
|
24
|
+
async addTransaction(userId, request) {
|
|
25
|
+
const streamId = (0, uuid_1.v4)();
|
|
26
|
+
const createdAt = new Date();
|
|
27
|
+
const transactionDate = new Date(request.transactionDate);
|
|
28
|
+
const event = new TransactionEvents_1.TransactionCreated({
|
|
29
|
+
eventId: (0, uuid_1.v4)(),
|
|
30
|
+
userId,
|
|
31
|
+
recipientUserId: request.recipientId ?? "",
|
|
32
|
+
logicalTransactionId: streamId,
|
|
33
|
+
description: request.description.trim(),
|
|
34
|
+
currency: request.currency,
|
|
35
|
+
splitType: request.type,
|
|
36
|
+
totalAmount: request.amount,
|
|
37
|
+
amount: this.calculateAmount(request.type, request.amount),
|
|
38
|
+
isOwed: request.type.includes("YouPaid") ||
|
|
39
|
+
request.type === "TheyOweYouAll",
|
|
40
|
+
transactionDate,
|
|
41
|
+
groupId: undefined,
|
|
42
|
+
groupTransactionId: undefined,
|
|
43
|
+
createdAt,
|
|
44
|
+
createdBy: userId,
|
|
45
|
+
streamId,
|
|
46
|
+
version: 1,
|
|
47
|
+
systemGenerated: false,
|
|
48
|
+
});
|
|
49
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
50
|
+
return streamId;
|
|
51
|
+
}
|
|
52
|
+
async updateTransaction(userId, transactionId, request) {
|
|
53
|
+
const transactionModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(transactionId);
|
|
54
|
+
if (!transactionModel) {
|
|
55
|
+
throw new Error(`Transaction not found: ${transactionId}`);
|
|
56
|
+
}
|
|
57
|
+
if (transactionModel.userId !== userId) {
|
|
58
|
+
throw new Error(`Unauthorized to update transaction: ${transactionId}`);
|
|
59
|
+
}
|
|
60
|
+
let currentVersion = transactionModel.version;
|
|
61
|
+
const createdAt = new Date();
|
|
62
|
+
if (request.description !== undefined &&
|
|
63
|
+
request.description.trim() !== "" &&
|
|
64
|
+
request.description !== transactionModel.description) {
|
|
65
|
+
currentVersion++;
|
|
66
|
+
const event = new TransactionEvents_1.DescriptionChanged({
|
|
67
|
+
eventId: (0, uuid_1.v4)(),
|
|
68
|
+
userId,
|
|
69
|
+
description: request.description.trim(),
|
|
70
|
+
createdAt,
|
|
71
|
+
createdBy: userId,
|
|
72
|
+
streamId: transactionModel.streamId,
|
|
73
|
+
version: currentVersion,
|
|
74
|
+
systemGenerated: false,
|
|
75
|
+
});
|
|
76
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
77
|
+
}
|
|
78
|
+
if (request.amount !== undefined &&
|
|
79
|
+
request.amount !== transactionModel.totalAmount) {
|
|
80
|
+
currentVersion++;
|
|
81
|
+
const event = new TransactionEvents_1.TotalAmountChanged({
|
|
82
|
+
eventId: (0, uuid_1.v4)(),
|
|
83
|
+
userId,
|
|
84
|
+
totalAmount: request.amount,
|
|
85
|
+
createdAt,
|
|
86
|
+
createdBy: userId,
|
|
87
|
+
streamId: transactionModel.streamId,
|
|
88
|
+
version: currentVersion,
|
|
89
|
+
systemGenerated: false,
|
|
90
|
+
});
|
|
91
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
92
|
+
}
|
|
93
|
+
if (request.currency !== undefined &&
|
|
94
|
+
request.currency !== transactionModel.currency) {
|
|
95
|
+
currentVersion++;
|
|
96
|
+
const event = new TransactionEvents_1.CurrencyChanged({
|
|
97
|
+
eventId: (0, uuid_1.v4)(),
|
|
98
|
+
userId,
|
|
99
|
+
currency: request.currency,
|
|
100
|
+
createdAt,
|
|
101
|
+
createdBy: userId,
|
|
102
|
+
streamId: transactionModel.streamId,
|
|
103
|
+
version: currentVersion,
|
|
104
|
+
systemGenerated: false,
|
|
105
|
+
});
|
|
106
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
107
|
+
}
|
|
108
|
+
if (request.type !== undefined &&
|
|
109
|
+
request.type !== transactionModel.splitType) {
|
|
110
|
+
currentVersion++;
|
|
111
|
+
const calculatedAmount = request.amount ?? transactionModel.totalAmount;
|
|
112
|
+
const event = new TransactionEvents_1.SplitTypeChanged({
|
|
113
|
+
eventId: (0, uuid_1.v4)(),
|
|
114
|
+
userId,
|
|
115
|
+
splitType: request.type,
|
|
116
|
+
totalAmount: calculatedAmount,
|
|
117
|
+
amount: this.calculateAmount(request.type, calculatedAmount),
|
|
118
|
+
isOwed: request.type.includes("YouPaid") ||
|
|
119
|
+
request.type === "TheyOweYouAll",
|
|
120
|
+
createdAt,
|
|
121
|
+
createdBy: userId,
|
|
122
|
+
streamId: transactionModel.streamId,
|
|
123
|
+
version: currentVersion,
|
|
124
|
+
systemGenerated: false,
|
|
125
|
+
});
|
|
126
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
127
|
+
}
|
|
128
|
+
if (request.transactionDate !== undefined &&
|
|
129
|
+
request.transactionDate !==
|
|
130
|
+
transactionModel.transactionDate.toISOString()) {
|
|
131
|
+
currentVersion++;
|
|
132
|
+
const transactionDate = new Date(request.transactionDate);
|
|
133
|
+
const event = new TransactionEvents_1.TransactionDateChanged({
|
|
134
|
+
eventId: (0, uuid_1.v4)(),
|
|
135
|
+
userId,
|
|
136
|
+
transactionDate,
|
|
137
|
+
createdAt,
|
|
138
|
+
createdBy: userId,
|
|
139
|
+
streamId: transactionModel.streamId,
|
|
140
|
+
version: currentVersion,
|
|
141
|
+
systemGenerated: false,
|
|
142
|
+
});
|
|
143
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
async deleteTransaction(userId, transactionId) {
|
|
147
|
+
const transactionModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(transactionId);
|
|
148
|
+
if (!transactionModel) {
|
|
149
|
+
throw new Error(`Transaction not found: ${transactionId}`);
|
|
150
|
+
}
|
|
151
|
+
if (transactionModel.userId !== userId) {
|
|
152
|
+
throw new Error(`Unauthorized to delete transaction: ${transactionId}`);
|
|
153
|
+
}
|
|
154
|
+
const createdAt = new Date();
|
|
155
|
+
const event = new TransactionEvents_1.TransactionDeleted({
|
|
156
|
+
eventId: (0, uuid_1.v4)(),
|
|
157
|
+
userId,
|
|
158
|
+
createdAt,
|
|
159
|
+
createdBy: userId,
|
|
160
|
+
streamId: transactionModel.streamId,
|
|
161
|
+
version: transactionModel.version + 1,
|
|
162
|
+
systemGenerated: false,
|
|
163
|
+
});
|
|
164
|
+
await this.transactionEventHandler.handleEvent(event);
|
|
165
|
+
}
|
|
166
|
+
async getTransaction(userId, transactionId) {
|
|
167
|
+
const transactionModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(transactionId);
|
|
168
|
+
if (!transactionModel) {
|
|
169
|
+
throw new Error(`Transaction not found: ${transactionId}`);
|
|
170
|
+
}
|
|
171
|
+
if (transactionModel.userId !== userId) {
|
|
172
|
+
throw new Error(`Unauthorized to view transaction: ${transactionId}`);
|
|
173
|
+
}
|
|
174
|
+
return this.toTransactionResponse(transactionModel);
|
|
175
|
+
}
|
|
176
|
+
toTransactionResponse(transactionModel) {
|
|
177
|
+
return {
|
|
178
|
+
date: transactionModel.transactionDate.toISOString(),
|
|
179
|
+
description: transactionModel.description,
|
|
180
|
+
transactionId: transactionModel.streamId,
|
|
181
|
+
groupTransactionId: transactionModel.groupTransactionId,
|
|
182
|
+
groupId: transactionModel.groupId,
|
|
183
|
+
groupName: undefined,
|
|
184
|
+
totalAmount: transactionModel.totalAmount,
|
|
185
|
+
splitType: transactionModel.splitType,
|
|
186
|
+
amount: {
|
|
187
|
+
amount: transactionModel.amount,
|
|
188
|
+
currency: transactionModel.currency,
|
|
189
|
+
isOwed: transactionModel.isOwed,
|
|
190
|
+
},
|
|
191
|
+
friend: {
|
|
192
|
+
friendId: transactionModel.recipientUserId,
|
|
193
|
+
email: undefined,
|
|
194
|
+
phoneNumber: undefined,
|
|
195
|
+
photoUrl: undefined,
|
|
196
|
+
name: undefined,
|
|
197
|
+
},
|
|
198
|
+
defaultCurrencyAmount: undefined,
|
|
199
|
+
history: [],
|
|
200
|
+
createdAt: transactionModel.createdAt.toISOString(),
|
|
201
|
+
updatedAt: transactionModel.updatedAt.toISOString(),
|
|
202
|
+
createdBy: {
|
|
203
|
+
id: transactionModel.createdBy,
|
|
204
|
+
name: "User",
|
|
205
|
+
},
|
|
206
|
+
updatedBy: {
|
|
207
|
+
id: transactionModel.updatedBy,
|
|
208
|
+
name: "User",
|
|
209
|
+
},
|
|
210
|
+
deleted: transactionModel.deleted,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
exports.TransactionController = TransactionController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../../src/client/controllers/UserController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UserController.d.ts","sourceRoot":"","sources":["../../../src/client/controllers/UserController.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIxE,qBAAa,cAAc;IACvB,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,UAAU,GAErB;IAEK,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ5C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAU9C,UAAU,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,YAAY,CAAC;IAyExB,OAAO,CAAC,cAAc;CAiBzB"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UserController = void 0;
|
|
4
|
-
const EventBusSingleton_1 = require("../../common/EventBusSingleton");
|
|
5
4
|
const UserEvents_1 = require("../../UserEvents");
|
|
6
|
-
const rxjs_1 = require("rxjs");
|
|
7
5
|
const EventProcessorSDK_1 = require("../../EventProcessorSDK");
|
|
8
6
|
const uuid_1 = require("uuid");
|
|
9
7
|
class UserController {
|
|
@@ -15,28 +13,10 @@ class UserController {
|
|
|
15
13
|
}
|
|
16
14
|
async loginUser(userFSId) {
|
|
17
15
|
const existingUser = await this.modelStore.findByFirebaseUid(userFSId);
|
|
18
|
-
if (existingUser) {
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
const eventBus = (0, EventBusSingleton_1.getEventBus)();
|
|
22
|
-
const isUserCreatedForFirebaseUid = (event) => {
|
|
23
|
-
return (event instanceof UserEvents_1.UserCreated && event.firebaseUid === userFSId);
|
|
24
|
-
};
|
|
25
|
-
try {
|
|
26
|
-
const event = await (0, rxjs_1.firstValueFrom)(eventBus
|
|
27
|
-
.observable(isUserCreatedForFirebaseUid)
|
|
28
|
-
.pipe((0, rxjs_1.timeout)(10000)));
|
|
29
|
-
if (!event.userId) {
|
|
30
|
-
throw new Error("UserCreated event missing userId");
|
|
31
|
-
}
|
|
32
|
-
return event.userId;
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
if (error.name === "TimeoutError") {
|
|
36
|
-
throw new Error(`Timeout waiting for UserCreated event for firebaseUid: ${userFSId}`);
|
|
37
|
-
}
|
|
38
|
-
throw error;
|
|
16
|
+
if (!existingUser) {
|
|
17
|
+
throw new Error(`User not found for firebaseUid: ${userFSId}`);
|
|
39
18
|
}
|
|
19
|
+
return existingUser.userId;
|
|
40
20
|
}
|
|
41
21
|
async getUser(userId) {
|
|
42
22
|
const userModel = await this.modelStore.getByStreamIdWhereDeletedIsFalse(userId);
|
|
@@ -1,25 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
interface FirestoreTimestamp {
|
|
3
|
-
toDate(): Date;
|
|
4
|
-
seconds: number;
|
|
5
|
-
nanoseconds: number;
|
|
6
|
-
}
|
|
7
|
-
interface ClientFirestoreEventData {
|
|
8
|
-
id: string;
|
|
9
|
-
eventType: string;
|
|
10
|
-
streamId: string;
|
|
11
|
-
version: number;
|
|
12
|
-
createdAt: FirestoreTimestamp | Date;
|
|
13
|
-
createdBy: string;
|
|
14
|
-
systemGenerated?: boolean;
|
|
15
|
-
[key: string]: any;
|
|
16
|
-
}
|
|
1
|
+
import { Event } from "../../index";
|
|
17
2
|
export declare class UIEventHandler {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
handleFirestoreEvent(eventData: ClientFirestoreEventData): Promise<void>;
|
|
21
|
-
private firestoreToEvent;
|
|
22
|
-
private toDate;
|
|
3
|
+
constructor();
|
|
4
|
+
handleFirestoreEvent(event: Event): Promise<void>;
|
|
23
5
|
}
|
|
24
|
-
export {};
|
|
25
6
|
//# sourceMappingURL=UIEventHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UIEventHandler.d.ts","sourceRoot":"","sources":["../../../src/client/handlers/UIEventHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UIEventHandler.d.ts","sourceRoot":"","sources":["../../../src/client/handlers/UIEventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAyB,MAAM,aAAa,CAAC;AAE3D,qBAAa,cAAc;;IAGjB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1D"}
|
|
@@ -2,51 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UIEventHandler = void 0;
|
|
4
4
|
const index_1 = require("../../index");
|
|
5
|
-
const EventBusSingleton_1 = require("../../common/EventBusSingleton");
|
|
6
|
-
const uuid_1 = require("uuid");
|
|
7
5
|
class UIEventHandler {
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (event instanceof index_1.UserCreated) {
|
|
14
|
-
const existingModel = await this.userModelStore.getByStreamIdWhereDeletedIsFalse(event.streamId);
|
|
15
|
-
const updatedModel = event.apply(existingModel);
|
|
16
|
-
await this.userModelStore.save(updatedModel);
|
|
17
|
-
(0, EventBusSingleton_1.getEventBus)().publish(event);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
firestoreToEvent(data) {
|
|
21
|
-
const eventType = data.eventType;
|
|
22
|
-
const createdAt = this.toDate(data.createdAt);
|
|
23
|
-
if (eventType === "UserCreated") {
|
|
24
|
-
return new index_1.UserCreated({
|
|
25
|
-
eventId: (0, uuid_1.v4)(),
|
|
26
|
-
userId: data.userId,
|
|
27
|
-
firebaseUid: data.firebaseUid,
|
|
28
|
-
displayName: data.displayName,
|
|
29
|
-
phoneNumber: data.phoneNumber,
|
|
30
|
-
email: data.email,
|
|
31
|
-
photoUrl: data.photoUrl,
|
|
32
|
-
emailVerified: data.emailVerified,
|
|
33
|
-
createdAt,
|
|
34
|
-
createdBy: data.createdBy,
|
|
35
|
-
streamId: data.streamId,
|
|
36
|
-
version: data.version,
|
|
37
|
-
systemGenerated: data.systemGenerated ?? false,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
throw new Error(`Unsupported event type: ${eventType}`);
|
|
41
|
-
}
|
|
42
|
-
toDate(timestamp) {
|
|
43
|
-
if (timestamp instanceof Date) {
|
|
44
|
-
return timestamp;
|
|
45
|
-
}
|
|
46
|
-
if (typeof timestamp === "object" && "toDate" in timestamp) {
|
|
47
|
-
return timestamp.toDate();
|
|
48
|
-
}
|
|
49
|
-
return new Date(timestamp);
|
|
6
|
+
constructor() { }
|
|
7
|
+
async handleFirestoreEvent(event) {
|
|
8
|
+
await index_1.EventConverterFactory.getConverter(event.constructor.name)
|
|
9
|
+
.getEventHandler()
|
|
10
|
+
.handleClientEventFromRemoteListener(event);
|
|
50
11
|
}
|
|
51
12
|
}
|
|
52
13
|
exports.UIEventHandler = UIEventHandler;
|
|
@@ -14,74 +14,4 @@ export interface GroupTransactionEvent extends Event {
|
|
|
14
14
|
}
|
|
15
15
|
export interface ActivityLogEvent extends Event {
|
|
16
16
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Event type definitions for each domain
|
|
19
|
-
*/
|
|
20
|
-
export declare const UserEventTypes: {
|
|
21
|
-
readonly UserCreated: "UserCreated";
|
|
22
|
-
readonly PlaceholderUserCreated: "PlaceholderUserCreated";
|
|
23
|
-
readonly UserCurrencyChanged: "UserCurrencyChanged";
|
|
24
|
-
readonly UserPhoneNumberChanged: "UserPhoneNumberChanged";
|
|
25
|
-
readonly UserDisplayNameChanged: "UserDisplayNameChanged";
|
|
26
|
-
readonly UserDeleted: "UserDeleted";
|
|
27
|
-
readonly PlaceholderUserMerged: "PlaceholderUserMerged";
|
|
28
|
-
readonly UserConvertedToPlaceholder: "UserConvertedToPlaceholder";
|
|
29
|
-
};
|
|
30
|
-
export declare const FriendEventTypes: {
|
|
31
|
-
readonly FriendCreated: "FriendCreated";
|
|
32
|
-
readonly FriendUpdated: "FriendUpdated";
|
|
33
|
-
readonly FriendDeleted: "FriendDeleted";
|
|
34
|
-
readonly FriendIdAdded: "FriendIdAdded";
|
|
35
|
-
readonly FriendIdRemoved: "FriendIdRemoved";
|
|
36
|
-
};
|
|
37
|
-
export declare const TransactionEventTypes: {
|
|
38
|
-
readonly TransactionCreated: "TransactionCreated";
|
|
39
|
-
readonly TransactionDeleted: "TransactionDeleted";
|
|
40
|
-
readonly DescriptionChanged: "DescriptionChanged";
|
|
41
|
-
readonly TotalAmountChanged: "TotalAmountChanged";
|
|
42
|
-
readonly SplitTypeChanged: "SplitTypeChanged";
|
|
43
|
-
readonly CurrencyChanged: "CurrencyChanged";
|
|
44
|
-
readonly TransactionDateChanged: "TransactionDateChanged";
|
|
45
|
-
readonly TransactionDetailsChanged: "TransactionDetailsChanged";
|
|
46
|
-
};
|
|
47
|
-
export declare const GroupEventTypes: {
|
|
48
|
-
readonly GroupCreated: "GroupCreated";
|
|
49
|
-
readonly GroupNameChanged: "GroupNameChanged";
|
|
50
|
-
readonly GroupDescriptionChanged: "GroupDescriptionChanged";
|
|
51
|
-
readonly GroupMembersAdded: "GroupMembersAdded";
|
|
52
|
-
readonly GroupMembersRemoved: "GroupMembersRemoved";
|
|
53
|
-
readonly GroupDeleted: "GroupDeleted";
|
|
54
|
-
};
|
|
55
|
-
export declare const GroupTransactionEventTypes: {
|
|
56
|
-
readonly GroupTransactionCreated: "GroupTransactionCreated";
|
|
57
|
-
readonly GroupTransactionDescriptionChanged: "GroupTransactionDescriptionChanged";
|
|
58
|
-
readonly GroupTransactionNotesChanged: "GroupTransactionNotesChanged";
|
|
59
|
-
readonly GroupTransactionTotalAmountChanged: "GroupTransactionTotalAmountChanged";
|
|
60
|
-
readonly GroupTransactionCurrencyChanged: "GroupTransactionCurrencyChanged";
|
|
61
|
-
readonly GroupTransactionSplitTypeChanged: "GroupTransactionSplitTypeChanged";
|
|
62
|
-
readonly GroupTransactionDateChanged: "GroupTransactionDateChanged";
|
|
63
|
-
readonly GroupTransactionSplitDetailsChanged: "GroupTransactionSplitDetailsChanged";
|
|
64
|
-
readonly GroupTransactionDeleted: "GroupTransactionDeleted";
|
|
65
|
-
};
|
|
66
|
-
export declare const ActivityLogEventTypes: {
|
|
67
|
-
readonly ActivityLogCreated: "ActivityLogCreated";
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Valid event types arrays for validation
|
|
71
|
-
*/
|
|
72
|
-
export declare const VALID_USER_EVENT_TYPES: ("UserCreated" | "PlaceholderUserCreated" | "UserCurrencyChanged" | "UserPhoneNumberChanged" | "UserDisplayNameChanged" | "UserDeleted" | "PlaceholderUserMerged" | "UserConvertedToPlaceholder")[];
|
|
73
|
-
export declare const VALID_FRIEND_EVENT_TYPES: ("FriendCreated" | "FriendUpdated" | "FriendDeleted" | "FriendIdAdded" | "FriendIdRemoved")[];
|
|
74
|
-
export declare const VALID_TRANSACTION_EVENT_TYPES: ("TransactionCreated" | "TransactionDeleted" | "DescriptionChanged" | "TotalAmountChanged" | "SplitTypeChanged" | "CurrencyChanged" | "TransactionDateChanged" | "TransactionDetailsChanged")[];
|
|
75
|
-
export declare const VALID_GROUP_EVENT_TYPES: ("GroupCreated" | "GroupNameChanged" | "GroupDescriptionChanged" | "GroupMembersAdded" | "GroupMembersRemoved" | "GroupDeleted")[];
|
|
76
|
-
export declare const VALID_GROUP_TRANSACTION_EVENT_TYPES: ("GroupTransactionCreated" | "GroupTransactionDescriptionChanged" | "GroupTransactionNotesChanged" | "GroupTransactionTotalAmountChanged" | "GroupTransactionCurrencyChanged" | "GroupTransactionSplitTypeChanged" | "GroupTransactionDateChanged" | "GroupTransactionSplitDetailsChanged" | "GroupTransactionDeleted")[];
|
|
77
|
-
export declare const VALID_ACTIVITY_LOG_EVENT_TYPES: "ActivityLogCreated"[];
|
|
78
|
-
/**
|
|
79
|
-
* Type validation functions
|
|
80
|
-
*/
|
|
81
|
-
export declare function isValidUserEventType(eventType: string): boolean;
|
|
82
|
-
export declare function isValidFriendEventType(eventType: string): boolean;
|
|
83
|
-
export declare function isValidTransactionEventType(eventType: string): boolean;
|
|
84
|
-
export declare function isValidGroupEventType(eventType: string): boolean;
|
|
85
|
-
export declare function isValidGroupTransactionEventType(eventType: string): boolean;
|
|
86
|
-
export declare function isValidActivityLogEventType(eventType: string): boolean;
|
|
87
17
|
//# sourceMappingURL=DomainEvents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DomainEvents.d.ts","sourceRoot":"","sources":["../../src/common/DomainEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AAEH,MAAM,WAAW,gBAAiB,SAAQ,KAAK;CAE9C;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;CAEvC;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;CAEzC;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;CAExC;AAED,MAAM,WAAW,qBAAsB,SAAQ,KAAK;CAEnD;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;CAE9C
|
|
1
|
+
{"version":3,"file":"DomainEvents.d.ts","sourceRoot":"","sources":["../../src/common/DomainEvents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;GAEG;AAEH,MAAM,WAAW,gBAAiB,SAAQ,KAAK;CAE9C;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;CAEvC;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK;CAEzC;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;CAExC;AAED,MAAM,WAAW,qBAAsB,SAAQ,KAAK;CAEnD;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK;CAE9C"}
|
|
@@ -1,91 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VALID_ACTIVITY_LOG_EVENT_TYPES = exports.VALID_GROUP_TRANSACTION_EVENT_TYPES = exports.VALID_GROUP_EVENT_TYPES = exports.VALID_TRANSACTION_EVENT_TYPES = exports.VALID_FRIEND_EVENT_TYPES = exports.VALID_USER_EVENT_TYPES = exports.ActivityLogEventTypes = exports.GroupTransactionEventTypes = exports.GroupEventTypes = exports.TransactionEventTypes = exports.FriendEventTypes = exports.UserEventTypes = void 0;
|
|
4
|
-
exports.isValidUserEventType = isValidUserEventType;
|
|
5
|
-
exports.isValidFriendEventType = isValidFriendEventType;
|
|
6
|
-
exports.isValidTransactionEventType = isValidTransactionEventType;
|
|
7
|
-
exports.isValidGroupEventType = isValidGroupEventType;
|
|
8
|
-
exports.isValidGroupTransactionEventType = isValidGroupTransactionEventType;
|
|
9
|
-
exports.isValidActivityLogEventType = isValidActivityLogEventType;
|
|
10
|
-
/**
|
|
11
|
-
* Event type definitions for each domain
|
|
12
|
-
*/
|
|
13
|
-
exports.UserEventTypes = {
|
|
14
|
-
UserCreated: "UserCreated",
|
|
15
|
-
PlaceholderUserCreated: "PlaceholderUserCreated",
|
|
16
|
-
UserCurrencyChanged: "UserCurrencyChanged",
|
|
17
|
-
UserPhoneNumberChanged: "UserPhoneNumberChanged",
|
|
18
|
-
UserDisplayNameChanged: "UserDisplayNameChanged",
|
|
19
|
-
UserDeleted: "UserDeleted",
|
|
20
|
-
PlaceholderUserMerged: "PlaceholderUserMerged",
|
|
21
|
-
UserConvertedToPlaceholder: "UserConvertedToPlaceholder",
|
|
22
|
-
};
|
|
23
|
-
exports.FriendEventTypes = {
|
|
24
|
-
FriendCreated: "FriendCreated",
|
|
25
|
-
FriendUpdated: "FriendUpdated",
|
|
26
|
-
FriendDeleted: "FriendDeleted",
|
|
27
|
-
FriendIdAdded: "FriendIdAdded",
|
|
28
|
-
FriendIdRemoved: "FriendIdRemoved",
|
|
29
|
-
};
|
|
30
|
-
exports.TransactionEventTypes = {
|
|
31
|
-
TransactionCreated: "TransactionCreated",
|
|
32
|
-
TransactionDeleted: "TransactionDeleted",
|
|
33
|
-
DescriptionChanged: "DescriptionChanged",
|
|
34
|
-
TotalAmountChanged: "TotalAmountChanged",
|
|
35
|
-
SplitTypeChanged: "SplitTypeChanged",
|
|
36
|
-
CurrencyChanged: "CurrencyChanged",
|
|
37
|
-
TransactionDateChanged: "TransactionDateChanged",
|
|
38
|
-
TransactionDetailsChanged: "TransactionDetailsChanged",
|
|
39
|
-
};
|
|
40
|
-
exports.GroupEventTypes = {
|
|
41
|
-
GroupCreated: "GroupCreated",
|
|
42
|
-
GroupNameChanged: "GroupNameChanged",
|
|
43
|
-
GroupDescriptionChanged: "GroupDescriptionChanged",
|
|
44
|
-
GroupMembersAdded: "GroupMembersAdded",
|
|
45
|
-
GroupMembersRemoved: "GroupMembersRemoved",
|
|
46
|
-
GroupDeleted: "GroupDeleted",
|
|
47
|
-
};
|
|
48
|
-
exports.GroupTransactionEventTypes = {
|
|
49
|
-
GroupTransactionCreated: "GroupTransactionCreated",
|
|
50
|
-
GroupTransactionDescriptionChanged: "GroupTransactionDescriptionChanged",
|
|
51
|
-
GroupTransactionNotesChanged: "GroupTransactionNotesChanged",
|
|
52
|
-
GroupTransactionTotalAmountChanged: "GroupTransactionTotalAmountChanged",
|
|
53
|
-
GroupTransactionCurrencyChanged: "GroupTransactionCurrencyChanged",
|
|
54
|
-
GroupTransactionSplitTypeChanged: "GroupTransactionSplitTypeChanged",
|
|
55
|
-
GroupTransactionDateChanged: "GroupTransactionDateChanged",
|
|
56
|
-
GroupTransactionSplitDetailsChanged: "GroupTransactionSplitDetailsChanged",
|
|
57
|
-
GroupTransactionDeleted: "GroupTransactionDeleted",
|
|
58
|
-
};
|
|
59
|
-
exports.ActivityLogEventTypes = {
|
|
60
|
-
ActivityLogCreated: "ActivityLogCreated",
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Valid event types arrays for validation
|
|
64
|
-
*/
|
|
65
|
-
exports.VALID_USER_EVENT_TYPES = Object.values(exports.UserEventTypes);
|
|
66
|
-
exports.VALID_FRIEND_EVENT_TYPES = Object.values(exports.FriendEventTypes);
|
|
67
|
-
exports.VALID_TRANSACTION_EVENT_TYPES = Object.values(exports.TransactionEventTypes);
|
|
68
|
-
exports.VALID_GROUP_EVENT_TYPES = Object.values(exports.GroupEventTypes);
|
|
69
|
-
exports.VALID_GROUP_TRANSACTION_EVENT_TYPES = Object.values(exports.GroupTransactionEventTypes);
|
|
70
|
-
exports.VALID_ACTIVITY_LOG_EVENT_TYPES = Object.values(exports.ActivityLogEventTypes);
|
|
71
|
-
/**
|
|
72
|
-
* Type validation functions
|
|
73
|
-
*/
|
|
74
|
-
function isValidUserEventType(eventType) {
|
|
75
|
-
return exports.VALID_USER_EVENT_TYPES.includes(eventType);
|
|
76
|
-
}
|
|
77
|
-
function isValidFriendEventType(eventType) {
|
|
78
|
-
return exports.VALID_FRIEND_EVENT_TYPES.includes(eventType);
|
|
79
|
-
}
|
|
80
|
-
function isValidTransactionEventType(eventType) {
|
|
81
|
-
return exports.VALID_TRANSACTION_EVENT_TYPES.includes(eventType);
|
|
82
|
-
}
|
|
83
|
-
function isValidGroupEventType(eventType) {
|
|
84
|
-
return exports.VALID_GROUP_EVENT_TYPES.includes(eventType);
|
|
85
|
-
}
|
|
86
|
-
function isValidGroupTransactionEventType(eventType) {
|
|
87
|
-
return exports.VALID_GROUP_TRANSACTION_EVENT_TYPES.includes(eventType);
|
|
88
|
-
}
|
|
89
|
-
function isValidActivityLogEventType(eventType) {
|
|
90
|
-
return exports.VALID_ACTIVITY_LOG_EVENT_TYPES.includes(eventType);
|
|
91
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/expenses/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/expenses/index.ts"],"names":[],"mappings":"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"}
|