@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.
@@ -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 toTransactionActivityLogData: (data: TransactionActivityLogDataPayload) => TransactionActivityLogData;
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: `${payload.correlation_id}-${payload.event_type}-${payload.data?.transaction?.line_id ?? '1'}`,
42
- data: payload.data != null ? (0, exports.toTransactionActivityLogData)(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.vendor", "transaction_line.user_update.customer", "transaction_line.user_update.memo", "transaction_line.user_update.description", "transaction_line.user_update.account", "transaction_line.user_update.class"];
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.vendor" | "transaction_line.user_update.customer" | "transaction_line.user_update.memo" | "transaction_line.user_update.description" | "transaction_line.user_update.account" | "transaction_line.user_update.class";
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.vendor',
13
- 'transaction_line.user_update.customer',
14
- 'transaction_line.user_update.memo',
15
- 'transaction_line.user_update.description',
16
- 'transaction_line.user_update.account',
17
- 'transaction_line.user_update.class',
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: `${payload.correlation_id}-${payload.event_type}-${payload.data?.transaction?.line_id ?? '1'}`,
38
- data: payload.data != null ? toTransactionActivityLogData(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.vendor',
10
- 'transaction_line.user_update.customer',
11
- 'transaction_line.user_update.memo',
12
- 'transaction_line.user_update.description',
13
- 'transaction_line.user_update.account',
14
- 'transaction_line.user_update.class',
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) => `${transactionActivityLog.correlation_id}-${transactionActivityLog.event_type}-${transactionActivityLog.data?.transaction?.line_id ?? '1'}`);
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 transactionActivityLogs = getTransactionActivityLogsByIds(transactionActivityLogState, transactionActivityLogIds);
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,