@zeeshan60/event-processor 1.0.114 → 1.0.116
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/BudgetEventHandler.d.ts +22 -0
- package/dist/BudgetEventHandler.d.ts.map +1 -0
- package/dist/BudgetEventHandler.js +154 -0
- package/dist/BudgetEventHandler.js.map +1 -0
- package/dist/BudgetEvents.d.ts +155 -0
- package/dist/BudgetEvents.d.ts.map +1 -0
- package/dist/BudgetEvents.js +223 -0
- package/dist/BudgetEvents.js.map +1 -0
- package/dist/EventProcessorSDK.d.ts +12 -1
- package/dist/EventProcessorSDK.d.ts.map +1 -1
- package/dist/EventProcessorSDK.js +21 -0
- package/dist/EventProcessorSDK.js.map +1 -1
- package/dist/__tests__/test-helpers/IMBudgetEventStore.d.ts +11 -0
- package/dist/__tests__/test-helpers/IMBudgetEventStore.d.ts.map +1 -0
- package/dist/__tests__/test-helpers/IMBudgetEventStore.js +28 -0
- package/dist/__tests__/test-helpers/IMBudgetEventStore.js.map +1 -0
- package/dist/__tests__/test-helpers/IMBudgetModelStore.d.ts +19 -0
- package/dist/__tests__/test-helpers/IMBudgetModelStore.d.ts.map +1 -0
- package/dist/__tests__/test-helpers/IMBudgetModelStore.js +102 -0
- package/dist/__tests__/test-helpers/IMBudgetModelStore.js.map +1 -0
- package/dist/client/controllers/BudgetController.d.ts +25 -0
- package/dist/client/controllers/BudgetController.d.ts.map +1 -0
- package/dist/client/controllers/BudgetController.js +223 -0
- package/dist/client/controllers/BudgetController.js.map +1 -0
- package/dist/client/controllers/ExpenseController.d.ts +5 -3
- package/dist/client/controllers/ExpenseController.d.ts.map +1 -1
- package/dist/client/controllers/ExpenseController.js +101 -4
- package/dist/client/controllers/ExpenseController.js.map +1 -1
- package/dist/client/controllers/TransactionController.d.ts +2 -1
- package/dist/client/controllers/TransactionController.d.ts.map +1 -1
- package/dist/client/controllers/TransactionController.js +94 -0
- package/dist/client/controllers/TransactionController.js.map +1 -1
- package/dist/common/DomainEvents.d.ts +2 -0
- package/dist/common/DomainEvents.d.ts.map +1 -1
- package/dist/common/EventTypes.d.ts +4 -0
- package/dist/common/EventTypes.d.ts.map +1 -1
- package/dist/common/EventTypes.js +5 -0
- package/dist/common/EventTypes.js.map +1 -1
- package/dist/contracts/budgets/index.d.ts +47 -0
- package/dist/contracts/budgets/index.d.ts.map +1 -0
- package/dist/contracts/budgets/index.js +3 -0
- package/dist/contracts/budgets/index.js.map +1 -0
- package/dist/contracts/expenses/index.d.ts +28 -0
- package/dist/contracts/expenses/index.d.ts.map +1 -1
- package/dist/contracts/expenses/index.js.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/index.js.map +1 -1
- package/dist/contracts/transactions/index.d.ts +9 -0
- package/dist/contracts/transactions/index.d.ts.map +1 -1
- package/dist/converters/eventConverter.d.ts.map +1 -1
- package/dist/converters/eventConverter.js +20 -0
- package/dist/converters/eventConverter.js.map +1 -1
- package/dist/events.d.ts +4 -0
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +6 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/store/BudgetEventStore.d.ts +5 -0
- package/dist/store/BudgetEventStore.d.ts.map +1 -0
- package/dist/store/BudgetEventStore.js +3 -0
- package/dist/store/BudgetEventStore.js.map +1 -0
- package/dist/store/BudgetModelStore.d.ts +15 -0
- package/dist/store/BudgetModelStore.d.ts.map +1 -0
- package/dist/store/BudgetModelStore.js +5 -0
- package/dist/store/BudgetModelStore.js.map +1 -0
- package/dist/store/ExpenseModelStore.d.ts +1 -0
- package/dist/store/ExpenseModelStore.d.ts.map +1 -1
- package/dist/store/ExpenseModelStore.js.map +1 -1
- package/dist/utils/CategoryPieChartUtil.d.ts +7 -0
- package/dist/utils/CategoryPieChartUtil.d.ts.map +1 -0
- package/dist/utils/CategoryPieChartUtil.js +64 -0
- package/dist/utils/CategoryPieChartUtil.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CategoryPieChartUtil = void 0;
|
|
4
|
+
const expenses_1 = require("../contracts/expenses");
|
|
5
|
+
class CategoryPieChartUtil {
|
|
6
|
+
static transform(expensesResponse, categories) {
|
|
7
|
+
const allTransactions = expensesResponse.perMonth.flatMap((m) => m.transactions);
|
|
8
|
+
const categoryMap = new Map(categories.map((c) => [c.name, c]));
|
|
9
|
+
const incomeAggregation = new Map();
|
|
10
|
+
const expenseAggregation = new Map();
|
|
11
|
+
for (const transaction of allTransactions) {
|
|
12
|
+
const categoryName = transaction.category || "Uncategorized";
|
|
13
|
+
const amount = transaction.defaultCurrencyAmount.amount;
|
|
14
|
+
const aggregation = transaction.transactionType === expenses_1.TransactionType.INCOME
|
|
15
|
+
? incomeAggregation
|
|
16
|
+
: expenseAggregation;
|
|
17
|
+
const existing = aggregation.get(categoryName) || {
|
|
18
|
+
amount: 0,
|
|
19
|
+
count: 0,
|
|
20
|
+
};
|
|
21
|
+
aggregation.set(categoryName, {
|
|
22
|
+
amount: existing.amount + amount,
|
|
23
|
+
count: existing.count + 1,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
let totalIncome = 0;
|
|
27
|
+
for (const { amount } of incomeAggregation.values()) {
|
|
28
|
+
totalIncome += amount;
|
|
29
|
+
}
|
|
30
|
+
let totalExpense = 0;
|
|
31
|
+
for (const { amount } of expenseAggregation.values()) {
|
|
32
|
+
totalExpense += amount;
|
|
33
|
+
}
|
|
34
|
+
const currency = expensesResponse.totals.currency;
|
|
35
|
+
const incomes = this.buildPieChartItems(incomeAggregation, categoryMap, currency, totalIncome);
|
|
36
|
+
const expenses = this.buildPieChartItems(expenseAggregation, categoryMap, currency, totalExpense);
|
|
37
|
+
return {
|
|
38
|
+
incomes,
|
|
39
|
+
expenses,
|
|
40
|
+
totalIncome,
|
|
41
|
+
totalExpense,
|
|
42
|
+
currency,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
static buildPieChartItems(aggregation, categoryMap, currency, total) {
|
|
46
|
+
const items = [];
|
|
47
|
+
for (const [categoryName, { amount, count }] of aggregation) {
|
|
48
|
+
const categoryModel = categoryMap.get(categoryName);
|
|
49
|
+
items.push({
|
|
50
|
+
categoryName,
|
|
51
|
+
categoryColor: categoryModel?.color ?? "#808080",
|
|
52
|
+
categoryIcon: categoryModel?.icon ?? "help-circle",
|
|
53
|
+
amount,
|
|
54
|
+
currency,
|
|
55
|
+
percentage: total > 0 ? (amount / total) * 100 : 0,
|
|
56
|
+
transactionCount: count,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
items.sort((a, b) => b.amount - a.amount);
|
|
60
|
+
return items;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.CategoryPieChartUtil = CategoryPieChartUtil;
|
|
64
|
+
//# sourceMappingURL=CategoryPieChartUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryPieChartUtil.js","sourceRoot":"","sources":["../../src/utils/CategoryPieChartUtil.ts"],"names":[],"mappings":"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"}
|