@zeniai/client-epic-state 4.19.35 → 4.19.36-betaJK1

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.
Files changed (42) hide show
  1. package/lib/entity/transactionActivityLog/transactionActivityLogPayload.d.ts +27 -0
  2. package/lib/entity/transactionActivityLog/transactionActivityLogPayload.js +39 -0
  3. package/lib/entity/transactionActivityLog/transactionActivityLogReducer.d.ts +6 -0
  4. package/lib/entity/transactionActivityLog/transactionActivityLogReducer.js +27 -0
  5. package/lib/entity/transactionActivityLog/transactionActivityLogSelector.d.ts +4 -0
  6. package/lib/entity/transactionActivityLog/transactionActivityLogSelector.js +17 -0
  7. package/lib/entity/transactionActivityLog/transactionActivityLogState.d.ts +30 -0
  8. package/lib/entity/transactionActivityLog/transactionActivityLogState.js +13 -0
  9. package/lib/epic.d.ts +2 -1
  10. package/lib/epic.js +2 -1
  11. package/lib/esm/entity/transactionActivityLog/transactionActivityLogPayload.js +34 -0
  12. package/lib/esm/entity/transactionActivityLog/transactionActivityLogReducer.js +23 -0
  13. package/lib/esm/entity/transactionActivityLog/transactionActivityLogSelector.js +10 -0
  14. package/lib/esm/entity/transactionActivityLog/transactionActivityLogState.js +9 -0
  15. package/lib/esm/epic.js +2 -1
  16. package/lib/esm/index.js +2 -0
  17. package/lib/esm/reducer.js +6 -0
  18. package/lib/esm/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +3 -1
  19. package/lib/esm/view/spendManagement/reimbursement/remiDetailView/epics/fetchRemiDetailEpic.js +5 -4
  20. package/lib/esm/view/transactionActivityLogView/fetchTransactionActivityLogEpic.js +35 -0
  21. package/lib/esm/view/transactionActivityLogView/transactionActivityLogViewPayload.js +1 -0
  22. package/lib/esm/view/transactionActivityLogView/transactionActivityLogViewReducer.js +46 -0
  23. package/lib/esm/view/transactionActivityLogView/transactionActivityLogViewSelector.js +16 -0
  24. package/lib/esm/view/transactionActivityLogView/transactionActivityLogViewState.js +1 -0
  25. package/lib/index.d.ts +2 -0
  26. package/lib/index.js +5 -1
  27. package/lib/reducer.d.ts +6 -0
  28. package/lib/reducer.js +6 -0
  29. package/lib/tsconfig.typecheck.tsbuildinfo +1 -1
  30. package/lib/view/expenseAutomationView/epics/accountRecon/uploadAccountStatementEpic.js +3 -1
  31. package/lib/view/spendManagement/reimbursement/remiDetailView/epics/fetchRemiDetailEpic.js +5 -4
  32. package/lib/view/transactionActivityLogView/fetchTransactionActivityLogEpic.d.ts +8 -0
  33. package/lib/view/transactionActivityLogView/fetchTransactionActivityLogEpic.js +39 -0
  34. package/lib/view/transactionActivityLogView/transactionActivityLogViewPayload.d.ts +6 -0
  35. package/lib/view/transactionActivityLogView/transactionActivityLogViewPayload.js +2 -0
  36. package/lib/view/transactionActivityLogView/transactionActivityLogViewReducer.d.ts +17 -0
  37. package/lib/view/transactionActivityLogView/transactionActivityLogViewReducer.js +50 -0
  38. package/lib/view/transactionActivityLogView/transactionActivityLogViewSelector.d.ts +8 -0
  39. package/lib/view/transactionActivityLogView/transactionActivityLogViewSelector.js +19 -0
  40. package/lib/view/transactionActivityLogView/transactionActivityLogViewState.d.ts +5 -0
  41. package/lib/view/transactionActivityLogView/transactionActivityLogViewState.js +2 -0
  42. package/package.json +1 -1
@@ -21,14 +21,16 @@ const uploadAccountStatementEpic = (actions$, state$, zeniAPI) => actions$.pipe(
21
21
  error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Account not found'),
22
22
  }));
23
23
  }
24
+ const statementType = accountBase.accountType == 'credit_card' ? 'card' : 'bank';
24
25
  const requestPayload = {
25
26
  account_id: accountId,
26
27
  statement_start_date: start.toString(),
27
28
  statement_end_date: end.toString(),
28
29
  processor_run_id: payload.processor_run_id,
29
30
  file_id: payload.files[0].file_id,
31
+ statement_type: statementType,
30
32
  };
31
- const uploadAccountStatementApi$ = zeniAPI.postAndGetJSON(`${zeniAPI.apiEndPoints.reconciliationMicroServiceBaseUrl}/1.0/reconciliation/bank-statements`, requestPayload);
33
+ const uploadAccountStatementApi$ = zeniAPI.postAndGetJSON(`${zeniAPI.apiEndPoints.reconciliationMicroServiceBaseUrl}/1.0/reconciliation/statements`, requestPayload);
32
34
  return uploadAccountStatementApi$.pipe((0, operators_1.mergeMap)((response) => {
33
35
  if ((0, responsePayload_1.isSuccessResponse)(response) === true && response.data != null) {
34
36
  const actions = [];
@@ -36,6 +36,11 @@ const fetchRemiDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, ope
36
36
  remiDetail.fetchState !== 'In-Progress') {
37
37
  remiActions.push((0, remiDetailViewReducer_1.updateRemiDetailFetchState)(reimbursementId, 'In-Progress'));
38
38
  remiActions.push((0, commonHistoryReducer_1.fetchEntityHistory)(reimbursementId, 'reimbursement', cacheOverride));
39
+ // Fetch config in parallel if not already fetched
40
+ if (reimbursementConfigState.fetchState !== 'In-Progress' &&
41
+ reimbursementConfigState.fetchState !== 'Completed') {
42
+ remiActions.push((0, reimbursementConfigReducer_1.fetchReimbursementConfig)());
43
+ }
39
44
  const query = {
40
45
  transaction_type: 'reimbursement',
41
46
  reimbursement_provider: 'zeni',
@@ -64,10 +69,6 @@ const fetchRemiDetailEpic = (actions$, state$, zeniAPI) => actions$.pipe((0, ope
64
69
  (0, bankAccountReducer_1.updateBankAccounts)(reimburseeBankAccount != null ? [reimburseeBankAccount] : []),
65
70
  (0, remiDetailViewReducer_1.updateRemiDetailFetchState)(transcationId, 'Completed'),
66
71
  ];
67
- if (reimbursementConfigState.fetchState !== 'In-Progress' &&
68
- reimbursementConfigState.fetchState !== 'Completed') {
69
- actions.push((0, reimbursementConfigReducer_1.fetchReimbursementConfig)());
70
- }
71
72
  //update the merchants recommendation in recommendation view
72
73
  response.data.merchants.forEach((merchant) => {
73
74
  const recommendations = (0, recommendationHelper_1.getRecommendationFromRecommendationPayload)(merchant.recommendations ?? []);
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateTransactionActivityLogs } from '../../entity/transactionActivityLog/transactionActivityLogReducer';
4
+ import { RootState } from '../../reducer';
5
+ import { ZeniAPI } from '../../zeniAPI';
6
+ import { fetchTransactionActivityLog, updateTransactionActivityLogViewFetchStatus, updateTransactionActivityLogViewOnSuccess } from './transactionActivityLogViewReducer';
7
+ export type ActionType = ReturnType<typeof fetchTransactionActivityLog> | ReturnType<typeof updateTransactionActivityLogs> | ReturnType<typeof updateTransactionActivityLogViewOnSuccess> | ReturnType<typeof updateTransactionActivityLogViewFetchStatus>;
8
+ export declare const fetchTransactionActivityLogEpic: (actions$: ActionsObservable<ActionType>, _: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchTransactionActivityLogEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const transactionActivityLogReducer_1 = require("../../entity/transactionActivityLog/transactionActivityLogReducer");
7
+ const responsePayload_1 = require("../../responsePayload");
8
+ const transactionActivityLogViewReducer_1 = require("./transactionActivityLogViewReducer");
9
+ const fetchTransactionActivityLogEpic = (actions$, _, zeniAPI) => actions$.pipe((0, operators_1.filter)(transactionActivityLogViewReducer_1.fetchTransactionActivityLog.match), (0, operators_1.switchMap)((action) => {
10
+ const { qboId } = action.payload;
11
+ return zeniAPI
12
+ .getJSON(`${zeniAPI.apiEndPoints.accountMicroServiceBaseUrl}/1.0/transactions/${qboId}/activity`)
13
+ .pipe((0, operators_1.mergeMap)((response) => {
14
+ if ((0, responsePayload_1.isSuccessResponse)(response) &&
15
+ response.data != null &&
16
+ response.data.activity != null) {
17
+ const updateActions = [];
18
+ updateActions.push((0, transactionActivityLogViewReducer_1.updateTransactionActivityLogViewOnSuccess)({
19
+ data: response.data.activity,
20
+ qboId,
21
+ }));
22
+ updateActions.push((0, transactionActivityLogReducer_1.updateTransactionActivityLogs)(response.data.activity));
23
+ return (0, rxjs_1.from)(updateActions);
24
+ }
25
+ else {
26
+ return (0, rxjs_1.of)((0, transactionActivityLogViewReducer_1.updateTransactionActivityLogViewFetchStatus)({
27
+ fetchState: 'Error',
28
+ error: response.status,
29
+ qboId,
30
+ }));
31
+ }
32
+ }), (0, operators_1.catchError)((error) => (0, rxjs_1.of)((0, transactionActivityLogViewReducer_1.updateTransactionActivityLogViewFetchStatus)({
33
+ qboId,
34
+ fetchState: 'Error',
35
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'fetch transaction activity log REST API call errored out' +
36
+ JSON.stringify(error)),
37
+ }))));
38
+ }));
39
+ exports.fetchTransactionActivityLogEpic = fetchTransactionActivityLogEpic;
@@ -0,0 +1,6 @@
1
+ import { TransactionActivityLogPayload } from '../../entity/transactionActivityLog/transactionActivityLogPayload';
2
+ import { ZeniAPIResponse } from '../../responsePayload';
3
+ export interface FetchTransactionActivityLogPayload {
4
+ activity: TransactionActivityLogPayload[];
5
+ }
6
+ export type FetchTransactionActivityLogResponse = ZeniAPIResponse<FetchTransactionActivityLogPayload>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import { FetchState } from '../../commonStateTypes/common';
2
+ import { TransactionActivityLogPayload } from '../../entity/transactionActivityLog/transactionActivityLogPayload';
3
+ import { ZeniAPIStatus } from '../../responsePayload';
4
+ import { TransactionActivityLogViewState } from './transactionActivityLogViewState';
5
+ export declare const initialState: TransactionActivityLogViewState;
6
+ export declare const fetchTransactionActivityLog: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[qboId: string], {
7
+ qboId: string;
8
+ }, "transactionActivityLogView/fetchTransactionActivityLog", never, never>, updateTransactionActivityLogViewOnSuccess: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
9
+ data: TransactionActivityLogPayload[];
10
+ qboId: string;
11
+ }, "transactionActivityLogView/updateTransactionActivityLogViewOnSuccess">, clearTransactionActivityLogView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"transactionActivityLogView/clearTransactionActivityLogView">, updateTransactionActivityLogViewFetchStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
12
+ fetchState: FetchState;
13
+ qboId: string;
14
+ error?: ZeniAPIStatus;
15
+ }, "transactionActivityLogView/updateTransactionActivityLogViewFetchStatus">;
16
+ declare const _default: import("redux").Reducer<TransactionActivityLogViewState>;
17
+ export default _default;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.updateTransactionActivityLogViewFetchStatus = exports.clearTransactionActivityLogView = exports.updateTransactionActivityLogViewOnSuccess = exports.fetchTransactionActivityLog = exports.initialState = void 0;
5
+ const toolkit_1 = require("@reduxjs/toolkit");
6
+ exports.initialState = {
7
+ transactionActivityLogIdsByQboId: {},
8
+ transactionActivityLogFetchStateByQboId: {},
9
+ };
10
+ const transactionActivityLogView = (0, toolkit_1.createSlice)({
11
+ name: 'transactionActivityLogView',
12
+ initialState: exports.initialState,
13
+ reducers: {
14
+ fetchTransactionActivityLog: {
15
+ prepare(qboId) {
16
+ return {
17
+ payload: { qboId },
18
+ };
19
+ },
20
+ reducer(draft, action) {
21
+ const { qboId } = action.payload;
22
+ draft.transactionActivityLogFetchStateByQboId[qboId] = {
23
+ fetchState: 'In-Progress',
24
+ error: undefined,
25
+ };
26
+ draft.transactionActivityLogIdsByQboId[qboId] = [];
27
+ },
28
+ },
29
+ updateTransactionActivityLogViewOnSuccess(draft, action) {
30
+ const { data, qboId } = action.payload;
31
+ draft.transactionActivityLogFetchStateByQboId[qboId] = {
32
+ fetchState: 'Completed',
33
+ error: undefined,
34
+ };
35
+ draft.transactionActivityLogIdsByQboId[qboId] = data.map((transactionActivityLog) => transactionActivityLog.correlation_id);
36
+ },
37
+ updateTransactionActivityLogViewFetchStatus(draft, action) {
38
+ const { fetchState, qboId, error } = action.payload;
39
+ draft.transactionActivityLogFetchStateByQboId[qboId] = {
40
+ fetchState,
41
+ error,
42
+ };
43
+ },
44
+ clearTransactionActivityLogView(draft) {
45
+ Object.assign(draft, exports.initialState);
46
+ },
47
+ },
48
+ });
49
+ _a = transactionActivityLogView.actions, exports.fetchTransactionActivityLog = _a.fetchTransactionActivityLog, exports.updateTransactionActivityLogViewOnSuccess = _a.updateTransactionActivityLogViewOnSuccess, exports.clearTransactionActivityLogView = _a.clearTransactionActivityLogView, exports.updateTransactionActivityLogViewFetchStatus = _a.updateTransactionActivityLogViewFetchStatus;
50
+ exports.default = transactionActivityLogView.reducer;
@@ -0,0 +1,8 @@
1
+ import { ID } from '../../commonStateTypes/common';
2
+ import { SelectorView } from '../../commonStateTypes/viewAndReport/viewAndReport';
3
+ import { TransactionActivityLog } from '../../entity/transactionActivityLog/transactionActivityLogState';
4
+ import { RootState } from '../../reducer';
5
+ export interface TransactionActivityLogViewSelectorView extends SelectorView {
6
+ transactionActivityLogs: TransactionActivityLog[];
7
+ }
8
+ export declare const getTransactionActivityLogView: (state: RootState, qboId: ID) => TransactionActivityLogViewSelectorView;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransactionActivityLogView = void 0;
4
+ const toolkit_1 = require("@reduxjs/toolkit");
5
+ const reduceFetchState_1 = require("../../commonStateTypes/reduceFetchState");
6
+ const transactionActivityLogSelector_1 = require("../../entity/transactionActivityLog/transactionActivityLogSelector");
7
+ exports.getTransactionActivityLogView = (0, toolkit_1.createSelector)((state) => state.transactionActivityLogViewState, (state) => state.transactionActivityLogState, (_state, qboId) => qboId, (transactionActivityLogViewState, transactionActivityLogState, qboId) => {
8
+ const fetchStateAndError = transactionActivityLogViewState
9
+ .transactionActivityLogFetchStateByQboId[qboId] ?? {
10
+ fetchState: 'Not-Started',
11
+ error: undefined,
12
+ };
13
+ const transactionActivityLogIds = transactionActivityLogViewState.transactionActivityLogIdsByQboId[qboId] ?? [];
14
+ const transactionActivityLogs = (0, transactionActivityLogSelector_1.getTransactionActivityLogsByIds)(transactionActivityLogState, transactionActivityLogIds);
15
+ return {
16
+ ...(0, reduceFetchState_1.reduceFetchState)([fetchStateAndError]),
17
+ transactionActivityLogs,
18
+ };
19
+ });
@@ -0,0 +1,5 @@
1
+ import { FetchStateAndError, ID } from '../../commonStateTypes/common';
2
+ export interface TransactionActivityLogViewState {
3
+ transactionActivityLogFetchStateByQboId: Record<ID, FetchStateAndError>;
4
+ transactionActivityLogIdsByQboId: Record<ID, ID[]>;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeniai/client-epic-state",
3
- "version": "4.19.35",
3
+ "version": "4.19.36-betaJK1",
4
4
  "description": "Shared module between Web & Mobile containing required abstractions for state management, async network communication. ",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",