@zeniai/client-epic-state 4.19.67-betaRD1 → 4.19.67-betaRD2
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/lib/entity/transactionActivityLog/transactionActivityLogPayload.d.ts +7 -2
- package/lib/entity/transactionActivityLog/transactionActivityLogPayload.js +16 -7
- package/lib/entity/transactionActivityLog/transactionActivityLogState.d.ts +8 -2
- package/lib/entity/transactionActivityLog/transactionActivityLogState.js +6 -6
- package/lib/esm/entity/transactionActivityLog/transactionActivityLogPayload.js +14 -6
- package/lib/esm/entity/transactionActivityLog/transactionActivityLogState.js +6 -6
- package/lib/esm/view/transactionActivityLogView/fetchTransactionActivityLogEpic.js +6 -1
- package/lib/esm/view/transactionActivityLogView/transactionActivityLogViewReducer.js +2 -1
- package/lib/esm/view/transactionActivityLogView/transactionActivityLogViewSelector.js +19 -2
- package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
- package/lib/view/transactionActivityLogView/fetchTransactionActivityLogEpic.d.ts +2 -1
- package/lib/view/transactionActivityLogView/fetchTransactionActivityLogEpic.js +6 -1
- package/lib/view/transactionActivityLogView/transactionActivityLogViewPayload.d.ts +2 -0
- package/lib/view/transactionActivityLogView/transactionActivityLogViewReducer.js +2 -1
- package/lib/view/transactionActivityLogView/transactionActivityLogViewSelector.js +19 -2
- package/package.json +1 -1
|
@@ -8,16 +8,20 @@ export interface TransactionActivityLogLinePayload {
|
|
|
8
8
|
account?: AccountBasePayload;
|
|
9
9
|
accounting_class?: ClassBasePayload;
|
|
10
10
|
customer?: CustomerBasePayload;
|
|
11
|
+
line_description?: string;
|
|
12
|
+
transaction_memo?: string;
|
|
11
13
|
vendor?: VendorBasePayload;
|
|
12
14
|
}
|
|
13
15
|
export interface ActivityLogTransactionPayload {
|
|
14
16
|
line_id: string;
|
|
15
17
|
original_line: TransactionActivityLogLinePayload;
|
|
16
18
|
updated_line: TransactionActivityLogLinePayload;
|
|
19
|
+
transaction_id?: string;
|
|
17
20
|
}
|
|
18
21
|
export interface TransactionActivityLogDataPayload {
|
|
19
|
-
ai_summaries: AISummaryPayload[];
|
|
20
22
|
transaction: ActivityLogTransactionPayload;
|
|
23
|
+
ai_summaries?: AISummaryPayload[];
|
|
24
|
+
user_id?: string;
|
|
21
25
|
}
|
|
22
26
|
export interface TransactionActivityLogPayload {
|
|
23
27
|
correlation_id: string;
|
|
@@ -27,5 +31,6 @@ export interface TransactionActivityLogPayload {
|
|
|
27
31
|
processing_time_ms: number;
|
|
28
32
|
status_code: string;
|
|
29
33
|
}
|
|
30
|
-
export declare const
|
|
34
|
+
export declare const toActivityLogId: (correlationId: string, eventType: string, lineId: string | null | undefined) => string;
|
|
35
|
+
export declare const toTransactionActivityLogData: (data: TransactionActivityLogDataPayload, correlationId: string) => TransactionActivityLogData;
|
|
31
36
|
export declare const toTransactionActivityLog: (payload: TransactionActivityLogPayload) => TransactionActivityLog;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.toTransactionActivityLog = exports.toTransactionActivityLogData = void 0;
|
|
3
|
+
exports.toTransactionActivityLog = exports.toTransactionActivityLogData = exports.toActivityLogId = void 0;
|
|
4
4
|
const zeniDayJS_1 = require("../../zeniDayJS");
|
|
5
5
|
const accountPayload_1 = require("../account/accountPayload");
|
|
6
6
|
const classPayload_1 = require("../class/classPayload");
|
|
@@ -8,6 +8,8 @@ const customerPayload_1 = require("../customer/customerPayload");
|
|
|
8
8
|
const transactionLinePayload_1 = require("../transaction/payloadTypes/transactionLinePayload");
|
|
9
9
|
const vendorPayload_1 = require("../vendor/vendorPayload");
|
|
10
10
|
const transactionActivityLogState_1 = require("./transactionActivityLogState");
|
|
11
|
+
const toActivityLogId = (correlationId, eventType, lineId) => `${correlationId}-${eventType}-${lineId ?? '1'}`;
|
|
12
|
+
exports.toActivityLogId = toActivityLogId;
|
|
11
13
|
const toTransactionActivityLogLine = (line) => {
|
|
12
14
|
return {
|
|
13
15
|
account: line.account
|
|
@@ -20,26 +22,33 @@ const toTransactionActivityLogLine = (line) => {
|
|
|
20
22
|
vendor: line.vendor
|
|
21
23
|
? (0, vendorPayload_1.mapVendorBasePayloadToVendorBase)(line.vendor)
|
|
22
24
|
: undefined,
|
|
25
|
+
memo: line.transaction_memo,
|
|
26
|
+
description: line.line_description,
|
|
23
27
|
};
|
|
24
28
|
};
|
|
25
|
-
const toTransaction = (transaction) => {
|
|
29
|
+
const toTransaction = (transaction, correlationId, userId) => {
|
|
26
30
|
return {
|
|
27
31
|
lineId: transaction.line_id,
|
|
28
32
|
originalLine: toTransactionActivityLogLine(transaction.original_line),
|
|
29
33
|
updatedLine: toTransactionActivityLogLine(transaction.updated_line),
|
|
34
|
+
correlationId,
|
|
35
|
+
userId,
|
|
30
36
|
};
|
|
31
37
|
};
|
|
32
|
-
const toTransactionActivityLogData = (data) => {
|
|
38
|
+
const toTransactionActivityLogData = (data, correlationId) => {
|
|
33
39
|
return {
|
|
34
|
-
aiSummaries: data.ai_summaries.map(transactionLinePayload_1.toAISummary),
|
|
35
|
-
transaction: toTransaction(data.transaction),
|
|
40
|
+
aiSummaries: (data.ai_summaries ?? []).map(transactionLinePayload_1.toAISummary),
|
|
41
|
+
transaction: toTransaction(data.transaction, correlationId, data.user_id),
|
|
42
|
+
user: undefined,
|
|
36
43
|
};
|
|
37
44
|
};
|
|
38
45
|
exports.toTransactionActivityLogData = toTransactionActivityLogData;
|
|
39
46
|
const toTransactionActivityLog = (payload) => {
|
|
40
47
|
return {
|
|
41
|
-
id:
|
|
42
|
-
data: payload.data != null
|
|
48
|
+
id: (0, exports.toActivityLogId)(payload.correlation_id, payload.event_type, payload.data?.transaction?.line_id),
|
|
49
|
+
data: payload.data != null
|
|
50
|
+
? (0, exports.toTransactionActivityLogData)(payload.data, payload.correlation_id)
|
|
51
|
+
: null,
|
|
43
52
|
eventType: (0, transactionActivityLogState_1.toActivityLogEventType)(payload.event_type),
|
|
44
53
|
createTime: (0, zeniDayJS_1.date)(payload.create_time),
|
|
45
54
|
};
|
|
@@ -4,24 +4,30 @@ import { AccountBase } from '../account/accountState';
|
|
|
4
4
|
import { ClassBase } from '../class/classState';
|
|
5
5
|
import { CustomerBase } from '../customer/customerState';
|
|
6
6
|
import { AISummary } from '../transaction/stateTypes/transactionLine';
|
|
7
|
+
import { User } from '../user/userState';
|
|
7
8
|
import { VendorBase } from '../vendor/vendorState';
|
|
8
|
-
export declare const ALL_ACTIVITY_LOG_EVENT_TYPE: readonly ["transaction.sync_database", "transaction_line.account.updated", "transaction_line.class.updated", "transaction_line.customer.updated", "transaction_line.vendor.updated", "transaction_line.vendor.matched", "transaction_line.user_update
|
|
9
|
-
export declare const toActivityLogEventType: (v: string) => "transaction.sync_database" | "transaction_line.account.updated" | "transaction_line.class.updated" | "transaction_line.customer.updated" | "transaction_line.vendor.updated" | "transaction_line.vendor.matched" | "transaction_line.user_update
|
|
9
|
+
export declare const ALL_ACTIVITY_LOG_EVENT_TYPE: readonly ["transaction.sync_database", "transaction_line.account.updated", "transaction_line.class.updated", "transaction_line.customer.updated", "transaction_line.vendor.updated", "transaction_line.vendor.matched", "transaction_line.vendor.user_update", "transaction_line.customer.user_update", "transaction_line.memo.user_update", "transaction_line.description.user_update", "transaction_line.account.user_update", "transaction_line.class.user_update"];
|
|
10
|
+
export declare const toActivityLogEventType: (v: string) => "transaction.sync_database" | "transaction_line.account.updated" | "transaction_line.class.updated" | "transaction_line.customer.updated" | "transaction_line.vendor.updated" | "transaction_line.vendor.matched" | "transaction_line.vendor.user_update" | "transaction_line.customer.user_update" | "transaction_line.memo.user_update" | "transaction_line.description.user_update" | "transaction_line.account.user_update" | "transaction_line.class.user_update";
|
|
10
11
|
export type ActivityLogEventType = ReturnType<typeof toActivityLogEventType>;
|
|
11
12
|
export interface ActivityLogLine {
|
|
12
13
|
account?: AccountBase;
|
|
13
14
|
class?: ClassBase;
|
|
14
15
|
customer?: CustomerBase;
|
|
16
|
+
description?: string;
|
|
17
|
+
memo?: string;
|
|
15
18
|
vendor?: VendorBase;
|
|
16
19
|
}
|
|
17
20
|
export interface ActivityLogTransaction {
|
|
18
21
|
lineId: ID;
|
|
19
22
|
originalLine: ActivityLogLine;
|
|
20
23
|
updatedLine: ActivityLogLine;
|
|
24
|
+
correlationId?: string;
|
|
25
|
+
userId?: string;
|
|
21
26
|
}
|
|
22
27
|
export interface TransactionActivityLogData {
|
|
23
28
|
aiSummaries: AISummary[];
|
|
24
29
|
transaction: ActivityLogTransaction;
|
|
30
|
+
user?: User;
|
|
25
31
|
}
|
|
26
32
|
export interface TransactionActivityLog {
|
|
27
33
|
createTime: ZeniDate;
|
|
@@ -9,12 +9,12 @@ exports.ALL_ACTIVITY_LOG_EVENT_TYPE = [
|
|
|
9
9
|
'transaction_line.customer.updated',
|
|
10
10
|
'transaction_line.vendor.updated',
|
|
11
11
|
'transaction_line.vendor.matched',
|
|
12
|
-
'transaction_line.user_update
|
|
13
|
-
'transaction_line.user_update
|
|
14
|
-
'transaction_line.user_update
|
|
15
|
-
'transaction_line.user_update
|
|
16
|
-
'transaction_line.user_update
|
|
17
|
-
'transaction_line.user_update
|
|
12
|
+
'transaction_line.vendor.user_update',
|
|
13
|
+
'transaction_line.customer.user_update',
|
|
14
|
+
'transaction_line.memo.user_update',
|
|
15
|
+
'transaction_line.description.user_update',
|
|
16
|
+
'transaction_line.account.user_update',
|
|
17
|
+
'transaction_line.class.user_update',
|
|
18
18
|
];
|
|
19
19
|
const toActivityLogEventType = (v) => (0, stringToUnion_1.stringToUnion)(v, exports.ALL_ACTIVITY_LOG_EVENT_TYPE);
|
|
20
20
|
exports.toActivityLogEventType = toActivityLogEventType;
|
|
@@ -5,6 +5,7 @@ import { toCustomerBase } from '../customer/customerPayload';
|
|
|
5
5
|
import { toAISummary, } from '../transaction/payloadTypes/transactionLinePayload';
|
|
6
6
|
import { mapVendorBasePayloadToVendorBase, } from '../vendor/vendorPayload';
|
|
7
7
|
import { toActivityLogEventType, } from './transactionActivityLogState';
|
|
8
|
+
export const toActivityLogId = (correlationId, eventType, lineId) => `${correlationId}-${eventType}-${lineId ?? '1'}`;
|
|
8
9
|
const toTransactionActivityLogLine = (line) => {
|
|
9
10
|
return {
|
|
10
11
|
account: line.account
|
|
@@ -17,25 +18,32 @@ const toTransactionActivityLogLine = (line) => {
|
|
|
17
18
|
vendor: line.vendor
|
|
18
19
|
? mapVendorBasePayloadToVendorBase(line.vendor)
|
|
19
20
|
: undefined,
|
|
21
|
+
memo: line.transaction_memo,
|
|
22
|
+
description: line.line_description,
|
|
20
23
|
};
|
|
21
24
|
};
|
|
22
|
-
const toTransaction = (transaction) => {
|
|
25
|
+
const toTransaction = (transaction, correlationId, userId) => {
|
|
23
26
|
return {
|
|
24
27
|
lineId: transaction.line_id,
|
|
25
28
|
originalLine: toTransactionActivityLogLine(transaction.original_line),
|
|
26
29
|
updatedLine: toTransactionActivityLogLine(transaction.updated_line),
|
|
30
|
+
correlationId,
|
|
31
|
+
userId,
|
|
27
32
|
};
|
|
28
33
|
};
|
|
29
|
-
export const toTransactionActivityLogData = (data) => {
|
|
34
|
+
export const toTransactionActivityLogData = (data, correlationId) => {
|
|
30
35
|
return {
|
|
31
|
-
aiSummaries: data.ai_summaries.map(toAISummary),
|
|
32
|
-
transaction: toTransaction(data.transaction),
|
|
36
|
+
aiSummaries: (data.ai_summaries ?? []).map(toAISummary),
|
|
37
|
+
transaction: toTransaction(data.transaction, correlationId, data.user_id),
|
|
38
|
+
user: undefined,
|
|
33
39
|
};
|
|
34
40
|
};
|
|
35
41
|
export const toTransactionActivityLog = (payload) => {
|
|
36
42
|
return {
|
|
37
|
-
id:
|
|
38
|
-
data: payload.data != null
|
|
43
|
+
id: toActivityLogId(payload.correlation_id, payload.event_type, payload.data?.transaction?.line_id),
|
|
44
|
+
data: payload.data != null
|
|
45
|
+
? toTransactionActivityLogData(payload.data, payload.correlation_id)
|
|
46
|
+
: null,
|
|
39
47
|
eventType: toActivityLogEventType(payload.event_type),
|
|
40
48
|
createTime: date(payload.create_time),
|
|
41
49
|
};
|
|
@@ -6,11 +6,11 @@ export const ALL_ACTIVITY_LOG_EVENT_TYPE = [
|
|
|
6
6
|
'transaction_line.customer.updated',
|
|
7
7
|
'transaction_line.vendor.updated',
|
|
8
8
|
'transaction_line.vendor.matched',
|
|
9
|
-
'transaction_line.user_update
|
|
10
|
-
'transaction_line.user_update
|
|
11
|
-
'transaction_line.user_update
|
|
12
|
-
'transaction_line.user_update
|
|
13
|
-
'transaction_line.user_update
|
|
14
|
-
'transaction_line.user_update
|
|
9
|
+
'transaction_line.vendor.user_update',
|
|
10
|
+
'transaction_line.customer.user_update',
|
|
11
|
+
'transaction_line.memo.user_update',
|
|
12
|
+
'transaction_line.description.user_update',
|
|
13
|
+
'transaction_line.account.user_update',
|
|
14
|
+
'transaction_line.class.user_update',
|
|
15
15
|
];
|
|
16
16
|
export const toActivityLogEventType = (v) => stringToUnion(v, ALL_ACTIVITY_LOG_EVENT_TYPE);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { from, of } from 'rxjs';
|
|
2
2
|
import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
|
|
3
3
|
import { updateTransactionActivityLogs } from '../../entity/transactionActivityLog/transactionActivityLogReducer';
|
|
4
|
+
import { updateAllUsers } from '../../entity/user/userReducer';
|
|
4
5
|
import { createZeniAPIStatus, isSuccessResponse } from '../../responsePayload';
|
|
5
6
|
import { fetchTransactionActivityLog, updateTransactionActivityLogViewFetchStatus, updateTransactionActivityLogViewOnSuccess, } from './transactionActivityLogViewReducer';
|
|
6
7
|
export const fetchTransactionActivityLogEpic = (actions$, _, zeniAPI) => actions$.pipe(filter(fetchTransactionActivityLog.match), switchMap((action) => {
|
|
@@ -12,11 +13,15 @@ export const fetchTransactionActivityLogEpic = (actions$, _, zeniAPI) => actions
|
|
|
12
13
|
response.data != null &&
|
|
13
14
|
response.data.activity != null) {
|
|
14
15
|
const updateActions = [];
|
|
16
|
+
if (response.data.users != null &&
|
|
17
|
+
response.data.users.length > 0) {
|
|
18
|
+
updateActions.push(updateAllUsers({ users: response.data.users, updateType: 'merge' }));
|
|
19
|
+
}
|
|
20
|
+
updateActions.push(updateTransactionActivityLogs(response.data.activity));
|
|
15
21
|
updateActions.push(updateTransactionActivityLogViewOnSuccess({
|
|
16
22
|
data: response.data.activity,
|
|
17
23
|
qboId,
|
|
18
24
|
}));
|
|
19
|
-
updateActions.push(updateTransactionActivityLogs(response.data.activity));
|
|
20
25
|
return from(updateActions);
|
|
21
26
|
}
|
|
22
27
|
else {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
|
+
import { toActivityLogId, } from '../../entity/transactionActivityLog/transactionActivityLogPayload';
|
|
2
3
|
export const initialState = {
|
|
3
4
|
transactionActivityLogIdsByQboId: {},
|
|
4
5
|
transactionActivityLogFetchStateByQboId: {},
|
|
@@ -28,7 +29,7 @@ const transactionActivityLogView = createSlice({
|
|
|
28
29
|
fetchState: 'Completed',
|
|
29
30
|
error: undefined,
|
|
30
31
|
};
|
|
31
|
-
draft.transactionActivityLogIdsByQboId[qboId] = data.map((transactionActivityLog) =>
|
|
32
|
+
draft.transactionActivityLogIdsByQboId[qboId] = data.map((transactionActivityLog) => toActivityLogId(transactionActivityLog.correlation_id, transactionActivityLog.event_type, transactionActivityLog.data?.transaction?.line_id));
|
|
32
33
|
},
|
|
33
34
|
updateTransactionActivityLogViewFetchStatus(draft, action) {
|
|
34
35
|
const { fetchState, qboId, error } = action.payload;
|
|
@@ -1,14 +1,31 @@
|
|
|
1
1
|
import { createSelector } from '@reduxjs/toolkit';
|
|
2
2
|
import { reduceFetchState } from '../../commonStateTypes/reduceFetchState';
|
|
3
3
|
import { getTransactionActivityLogsByIds } from '../../entity/transactionActivityLog/transactionActivityLogSelector';
|
|
4
|
-
export const getTransactionActivityLogView = createSelector((state) => state.transactionActivityLogViewState, (state) => state.transactionActivityLogState, (_state, qboId) => qboId, (transactionActivityLogViewState, transactionActivityLogState, qboId) => {
|
|
4
|
+
export const getTransactionActivityLogView = createSelector((state) => state.transactionActivityLogViewState, (state) => state.transactionActivityLogState, (state) => state.userState, (_state, qboId) => qboId, (transactionActivityLogViewState, transactionActivityLogState, userState, qboId) => {
|
|
5
5
|
const fetchStateAndError = transactionActivityLogViewState
|
|
6
6
|
.transactionActivityLogFetchStateByQboId[qboId] ?? {
|
|
7
7
|
fetchState: 'Not-Started',
|
|
8
8
|
error: undefined,
|
|
9
9
|
};
|
|
10
10
|
const transactionActivityLogIds = transactionActivityLogViewState.transactionActivityLogIdsByQboId[qboId] ?? [];
|
|
11
|
-
const
|
|
11
|
+
const rawLogs = getTransactionActivityLogsByIds(transactionActivityLogState, transactionActivityLogIds);
|
|
12
|
+
const transactionActivityLogs = rawLogs.map((log) => {
|
|
13
|
+
const userId = log.data?.transaction?.userId;
|
|
14
|
+
if (userId == null || log.data == null) {
|
|
15
|
+
return log;
|
|
16
|
+
}
|
|
17
|
+
const user = userState.userByUserId[userId];
|
|
18
|
+
if (user == null) {
|
|
19
|
+
return log;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
...log,
|
|
23
|
+
data: {
|
|
24
|
+
...log.data,
|
|
25
|
+
user,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
});
|
|
12
29
|
return {
|
|
13
30
|
...reduceFetchState([fetchStateAndError]),
|
|
14
31
|
transactionActivityLogs,
|