@zeniai/client-epic-state 5.0.44 → 5.0.45

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 (64) hide show
  1. package/lib/entity/chargeCardRepayment/chargeCardRepayment.d.ts +1 -1
  2. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  3. package/lib/entity/snackbar/snackbarTypes.js +0 -3
  4. package/lib/entity/tenant/clearAllEpic.d.ts +3 -5
  5. package/lib/entity/tenant/clearAllEpic.js +2 -6
  6. package/lib/epic.d.ts +1 -7
  7. package/lib/epic.js +1 -7
  8. package/lib/esm/entity/snackbar/snackbarTypes.js +0 -3
  9. package/lib/esm/entity/tenant/clearAllEpic.js +2 -6
  10. package/lib/esm/epic.js +1 -7
  11. package/lib/esm/index.js +6 -12
  12. package/lib/esm/reducer.js +3 -9
  13. package/lib/index.d.ts +10 -18
  14. package/lib/index.js +46 -75
  15. package/lib/reducer.d.ts +3 -9
  16. package/lib/reducer.js +3 -9
  17. package/lib/view/expenseAutomationView/helpers/transactionCategorizationLocalDataHelper.d.ts +1 -1
  18. package/package.json +1 -1
  19. package/lib/entity/creditAgent/creditAgentPayload.d.ts +0 -41
  20. package/lib/entity/creditAgent/creditAgentPayload.js +0 -40
  21. package/lib/entity/creditAgent/creditAgentReducer.d.ts +0 -9
  22. package/lib/entity/creditAgent/creditAgentReducer.js +0 -37
  23. package/lib/entity/creditAgent/creditAgentSelector.d.ts +0 -3
  24. package/lib/entity/creditAgent/creditAgentSelector.js +0 -10
  25. package/lib/entity/creditAgent/creditAgentState.d.ts +0 -39
  26. package/lib/entity/creditAgent/creditAgentState.js +0 -17
  27. package/lib/esm/entity/creditAgent/creditAgentPayload.js +0 -36
  28. package/lib/esm/entity/creditAgent/creditAgentReducer.js +0 -33
  29. package/lib/esm/entity/creditAgent/creditAgentSelector.js +0 -6
  30. package/lib/esm/entity/creditAgent/creditAgentState.js +0 -13
  31. package/lib/esm/view/creditAgentView/buildCreditReportCsv.js +0 -44
  32. package/lib/esm/view/creditAgentView/creditAgentViewPayload.js +0 -2
  33. package/lib/esm/view/creditAgentView/creditAgentViewReducer.js +0 -183
  34. package/lib/esm/view/creditAgentView/creditAgentViewSelector.js +0 -85
  35. package/lib/esm/view/creditAgentView/creditAgentViewState.js +0 -20
  36. package/lib/esm/view/creditAgentView/epics/fetchCardProfilesEpic.js +0 -20
  37. package/lib/esm/view/creditAgentView/epics/fetchCreditAgentAccessEpic.js +0 -13
  38. package/lib/esm/view/creditAgentView/epics/fetchCreditAgentMacroEpic.js +0 -19
  39. package/lib/esm/view/creditAgentView/epics/saveCreditAgentMacroEpic.js +0 -58
  40. package/lib/esm/view/creditAgentView/epics/scheduleTenantCreditScoreCronEpic.js +0 -39
  41. package/lib/esm/view/creditAgentView/epics/updateCardProfileEpic.js +0 -62
  42. package/lib/tsconfig.typecheck.tsbuildinfo +0 -1
  43. package/lib/view/creditAgentView/buildCreditReportCsv.d.ts +0 -17
  44. package/lib/view/creditAgentView/buildCreditReportCsv.js +0 -47
  45. package/lib/view/creditAgentView/creditAgentViewPayload.d.ts +0 -9
  46. package/lib/view/creditAgentView/creditAgentViewPayload.js +0 -7
  47. package/lib/view/creditAgentView/creditAgentViewReducer.d.ts +0 -41
  48. package/lib/view/creditAgentView/creditAgentViewReducer.js +0 -187
  49. package/lib/view/creditAgentView/creditAgentViewSelector.d.ts +0 -20
  50. package/lib/view/creditAgentView/creditAgentViewSelector.js +0 -93
  51. package/lib/view/creditAgentView/creditAgentViewState.d.ts +0 -34
  52. package/lib/view/creditAgentView/creditAgentViewState.js +0 -22
  53. package/lib/view/creditAgentView/epics/fetchCardProfilesEpic.d.ts +0 -15
  54. package/lib/view/creditAgentView/epics/fetchCardProfilesEpic.js +0 -24
  55. package/lib/view/creditAgentView/epics/fetchCreditAgentAccessEpic.d.ts +0 -11
  56. package/lib/view/creditAgentView/epics/fetchCreditAgentAccessEpic.js +0 -17
  57. package/lib/view/creditAgentView/epics/fetchCreditAgentMacroEpic.d.ts +0 -15
  58. package/lib/view/creditAgentView/epics/fetchCreditAgentMacroEpic.js +0 -23
  59. package/lib/view/creditAgentView/epics/saveCreditAgentMacroEpic.d.ts +0 -29
  60. package/lib/view/creditAgentView/epics/saveCreditAgentMacroEpic.js +0 -62
  61. package/lib/view/creditAgentView/epics/scheduleTenantCreditScoreCronEpic.d.ts +0 -30
  62. package/lib/view/creditAgentView/epics/scheduleTenantCreditScoreCronEpic.js +0 -43
  63. package/lib/view/creditAgentView/epics/updateCardProfileEpic.d.ts +0 -37
  64. package/lib/view/creditAgentView/epics/updateCardProfileEpic.js +0 -66
@@ -1,183 +0,0 @@
1
- import { createSlice } from '@reduxjs/toolkit';
2
- const initialTenantView = {
3
- analyzeStatus: { fetchState: 'Not-Started' },
4
- updateStatus: { fetchState: 'Not-Started' },
5
- };
6
- function getOrCreateTenantView(draft, tenantId) {
7
- if (draft.tenantViewByTenantId[tenantId] == null) {
8
- draft.tenantViewByTenantId[tenantId] = {
9
- ...initialTenantView,
10
- tenantId,
11
- };
12
- }
13
- return draft.tenantViewByTenantId[tenantId];
14
- }
15
- export const initialCreditAgentViewState = {
16
- access: {
17
- fetchStatus: { fetchState: 'Not-Started' },
18
- isAllowed: false,
19
- },
20
- macro: {
21
- fetchStatus: { fetchState: 'Not-Started' },
22
- updateStatus: { fetchState: 'Not-Started' },
23
- },
24
- profilesFetchStatus: { fetchState: 'Not-Started' },
25
- tenantViewByTenantId: {},
26
- uiState: {
27
- filterText: '',
28
- focus: 'All',
29
- minScore: 0,
30
- sortDir: 'asc',
31
- sortKey: undefined,
32
- },
33
- };
34
- const creditAgentView = createSlice({
35
- name: 'creditAgentView',
36
- initialState: initialCreditAgentViewState,
37
- reducers: {
38
- // ── Access ──
39
- fetchCreditAgentAccess(draft) {
40
- draft.access.fetchStatus = { fetchState: 'In-Progress' };
41
- },
42
- fetchCreditAgentAccessSuccess(draft, action) {
43
- draft.access.fetchStatus = { fetchState: 'Completed' };
44
- draft.access.isAllowed = action.payload;
45
- },
46
- fetchCreditAgentAccessFailure(draft, action) {
47
- draft.access.fetchStatus = { fetchState: 'Error', error: action.payload };
48
- },
49
- // ── Card Profiles (list-level fetch) ──
50
- fetchCardProfiles(draft) {
51
- draft.profilesFetchStatus = { fetchState: 'In-Progress' };
52
- },
53
- fetchCardProfilesSuccess(draft, action) {
54
- draft.profilesFetchStatus = { fetchState: 'Completed' };
55
- // Replace entire tenantViewByTenantId, preserving existing statuses
56
- // for tenants still present, removing stale ones.
57
- draft.tenantViewByTenantId = toTenantViewByTenantId(action.payload, draft.tenantViewByTenantId);
58
- },
59
- fetchCardProfilesFailure(draft, action) {
60
- draft.profilesFetchStatus = { fetchState: 'Error', error: action.payload };
61
- },
62
- // ── Update Card Profile (per-tenant) ──
63
- updateCardProfile: {
64
- reducer(draft, action) {
65
- const tv = getOrCreateTenantView(draft, action.payload.tenantId);
66
- tv.updateStatus = { fetchState: 'In-Progress' };
67
- },
68
- prepare(payload) {
69
- return { payload };
70
- },
71
- },
72
- updateCardProfileSuccess: {
73
- reducer(draft, action) {
74
- const tv = getOrCreateTenantView(draft, action.payload.tenantId);
75
- tv.updateStatus = { fetchState: 'Completed' };
76
- },
77
- prepare(tenantId) {
78
- return { payload: { tenantId } };
79
- },
80
- },
81
- updateCardProfileFailure: {
82
- reducer(draft, action) {
83
- const tv = getOrCreateTenantView(draft, action.payload.tenantId);
84
- tv.updateStatus = {
85
- fetchState: 'Error',
86
- error: action.payload.error,
87
- };
88
- },
89
- prepare(tenantId, error) {
90
- return { payload: { tenantId, error } };
91
- },
92
- },
93
- // ── Analyze / Schedule Cron (per-tenant) ──
94
- scheduleTenantCreditScoreCron: {
95
- reducer(draft, action) {
96
- if (action.payload.tenantId != null) {
97
- const tv = getOrCreateTenantView(draft, action.payload.tenantId);
98
- tv.analyzeStatus = { fetchState: 'In-Progress' };
99
- }
100
- },
101
- prepare(tenantId) {
102
- return { payload: { tenantId } };
103
- },
104
- },
105
- scheduleTenantCreditScoreCronSuccess: {
106
- reducer(draft, action) {
107
- if (action.payload.tenantId != null) {
108
- const tv = getOrCreateTenantView(draft, action.payload.tenantId);
109
- tv.analyzeStatus = { fetchState: 'Completed' };
110
- }
111
- },
112
- prepare(tenantId) {
113
- return { payload: { tenantId } };
114
- },
115
- },
116
- scheduleTenantCreditScoreCronFailure: {
117
- reducer(draft, action) {
118
- if (action.payload.tenantId != null) {
119
- const tv = getOrCreateTenantView(draft, action.payload.tenantId);
120
- tv.analyzeStatus = {
121
- fetchState: 'Error',
122
- error: action.payload.error,
123
- };
124
- }
125
- },
126
- prepare(tenantId, error) {
127
- return { payload: { tenantId, error } };
128
- },
129
- },
130
- // ── Macro ──
131
- fetchCreditAgentMacro(draft) {
132
- draft.macro.fetchStatus = { fetchState: 'In-Progress' };
133
- },
134
- fetchCreditAgentMacroSuccess(draft) {
135
- draft.macro.fetchStatus = { fetchState: 'Completed' };
136
- },
137
- fetchCreditAgentMacroFailure(draft, action) {
138
- draft.macro.fetchStatus = { fetchState: 'Error', error: action.payload };
139
- },
140
- saveCreditAgentMacro: {
141
- reducer(draft) {
142
- draft.macro.updateStatus = { fetchState: 'In-Progress' };
143
- },
144
- prepare(instructions) {
145
- return { payload: { instructions } };
146
- },
147
- },
148
- saveCreditAgentMacroSuccess(draft) {
149
- draft.macro.updateStatus = { fetchState: 'Completed' };
150
- },
151
- saveCreditAgentMacroFailure(draft, action) {
152
- draft.macro.updateStatus = { fetchState: 'Error', error: action.payload };
153
- },
154
- resetSaveMacroState(draft) {
155
- draft.macro.updateStatus = { fetchState: 'Not-Started' };
156
- },
157
- // ── UI State ──
158
- updateCreditAgentUIState(draft, action) {
159
- Object.assign(draft.uiState, action.payload);
160
- },
161
- // ── Clear ──
162
- clearCreditAgentView() {
163
- return initialCreditAgentViewState;
164
- },
165
- },
166
- });
167
- export const { fetchCreditAgentAccess, fetchCreditAgentAccessSuccess, fetchCreditAgentAccessFailure, scheduleTenantCreditScoreCron, scheduleTenantCreditScoreCronSuccess, scheduleTenantCreditScoreCronFailure, fetchCreditAgentMacro, fetchCreditAgentMacroSuccess, fetchCreditAgentMacroFailure, saveCreditAgentMacro, saveCreditAgentMacroSuccess, saveCreditAgentMacroFailure, resetSaveMacroState, fetchCardProfiles, fetchCardProfilesSuccess, fetchCardProfilesFailure, updateCardProfile, updateCardProfileSuccess, updateCardProfileFailure, updateCreditAgentUIState, clearCreditAgentView, } = creditAgentView.actions;
168
- export { initialCreditAgentViewState as initialState };
169
- export default creditAgentView.reducer;
170
- // ── Helpers ──
171
- const toTenantViewByTenantId = (rows, existing) => {
172
- const result = {};
173
- for (const row of rows) {
174
- const tenantId = row.tenant_id;
175
- const existingState = existing[tenantId];
176
- result[tenantId] = existingState ?? {
177
- analyzeStatus: { fetchState: 'Not-Started' },
178
- tenantId,
179
- updateStatus: { fetchState: 'Not-Started' },
180
- };
181
- }
182
- return result;
183
- };
@@ -1,85 +0,0 @@
1
- import { createSelector } from '@reduxjs/toolkit';
2
- import orderBy from 'lodash/orderBy';
3
- export const getCreditAgentView = (state) => state.creditAgentViewState;
4
- export const getCreditAgentEntity = (state) => state.creditAgentEntityState;
5
- export const getCreditAgentMacro = createSelector(getCreditAgentView, getCreditAgentEntity, (view, entity) => ({
6
- ...view.macro,
7
- data: entity.macro,
8
- }));
9
- export const getCardProfilesData = createSelector(getCreditAgentView, getCreditAgentEntity, (view, entity) => {
10
- const { uiState } = view;
11
- const allRows = Object.values(entity.rowByTenantId).map((row) => {
12
- const tenantView = view.tenantViewByTenantId[row.tenantId];
13
- return {
14
- ...row,
15
- analyzeStatus: tenantView?.analyzeStatus ?? {
16
- fetchState: 'Not-Started',
17
- },
18
- updateStatus: tenantView?.updateStatus ?? { fetchState: 'Not-Started' },
19
- };
20
- });
21
- let filteredRows = allRows;
22
- // Text filter
23
- const trimmedFilterText = uiState.filterText.trim();
24
- if (trimmedFilterText.length > 0) {
25
- const query = trimmedFilterText.toLowerCase();
26
- filteredRows = filteredRows.filter((row) => (row.customerName ?? '').toLowerCase().includes(query) ||
27
- row.tenantId.toLowerCase().includes(query));
28
- }
29
- // Focus filter
30
- filteredRows = applyFocusFilter(filteredRows, uiState.focus);
31
- // Min score filter
32
- if (uiState.minScore > 0) {
33
- filteredRows = filteredRows.filter((row) => {
34
- const score = parseFloat(row.creditScore ?? '0');
35
- return score >= uiState.minScore;
36
- });
37
- }
38
- // Sorting
39
- const sortedRows = getSortedRows(filteredRows, uiState.sortKey, uiState.sortDir);
40
- return {
41
- fetchStatus: view.profilesFetchStatus,
42
- rows: sortedRows,
43
- uiState,
44
- };
45
- });
46
- // ── Helpers ──
47
- const applyFocusFilter = (rows, focus) => {
48
- switch (focus) {
49
- case 'New only':
50
- return rows.filter((row) => row.isNew);
51
- case 'Interested':
52
- return rows.filter((row) => row.cardStatus === 'Interested');
53
- case 'Active only':
54
- return rows.filter((row) => row.cardStatus === 'Active' || row.cardStatus === 'Enabled');
55
- case 'All':
56
- default:
57
- return rows;
58
- }
59
- };
60
- const getSortedRows = (rows, sortKey, sortDir) => {
61
- if (sortKey == null) {
62
- return rows;
63
- }
64
- const direction = sortDir === 'asc' ? 'asc' : 'desc';
65
- return orderBy(rows, (row) => {
66
- switch (sortKey) {
67
- case 'name':
68
- return (row.customerName ?? '').toLowerCase();
69
- case 'status':
70
- return row.cardStatus.toLowerCase();
71
- case 'creditLimit':
72
- return row.creditLimit ?? 0;
73
- case 'creditScore':
74
- return parseFloat(row.creditScore ?? '0');
75
- case 'recAmount':
76
- return row.recommendedAmount ?? 0;
77
- case 'reportDate':
78
- return row.reportDate?.valueOf() ?? 0;
79
- case 'updatedBy':
80
- return (row.updatedByName ?? '').toLowerCase();
81
- default:
82
- return (row.customerName ?? '').toLowerCase();
83
- }
84
- }, direction);
85
- };
@@ -1,20 +0,0 @@
1
- import { stringToUnion } from '../../commonStateTypes/stringToUnion';
2
- const ALL_CREDIT_AGENT_SORT_KEYS = [
3
- 'name',
4
- 'status',
5
- 'creditLimit',
6
- 'creditScore',
7
- 'recAmount',
8
- 'reportDate',
9
- 'updatedBy',
10
- ];
11
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
- const toCreditAgentSortKeyType = (v) => stringToUnion(v, ALL_CREDIT_AGENT_SORT_KEYS);
13
- const ALL_CREDIT_AGENT_FOCUS_FILTERS = [
14
- 'All',
15
- 'New only',
16
- 'Interested',
17
- 'Active only',
18
- ];
19
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
- const toCreditAgentFocusFilterType = (v) => stringToUnion(v, ALL_CREDIT_AGENT_FOCUS_FILTERS);
@@ -1,20 +0,0 @@
1
- import { from, of } from 'rxjs';
2
- import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { updateCreditAgentRows } from '../../../entity/creditAgent/creditAgentReducer';
4
- import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
5
- import { fetchCardProfiles, fetchCardProfilesFailure, fetchCardProfilesSuccess, } from '../creditAgentViewReducer';
6
- export const fetchCardProfilesEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchCardProfiles.match), switchMap(() => {
7
- const url = `${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cockpit/card-tenant-profiles`;
8
- return zeniAPI.getJSON(url).pipe(mergeMap((response) => {
9
- if (isSuccessResponse(response) && response.data != null) {
10
- const rawRows = response.data.rows;
11
- return from([
12
- updateCreditAgentRows(rawRows),
13
- fetchCardProfilesSuccess(rawRows),
14
- ]);
15
- }
16
- else {
17
- return of(fetchCardProfilesFailure(response.status));
18
- }
19
- }), catchError((error) => of(fetchCardProfilesFailure(createZeniAPIStatus('Unexpected error', 'REST API call errored out: ' + JSON.stringify(error))))));
20
- }));
@@ -1,13 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { catchError, filter, switchMap } from 'rxjs/operators';
3
- import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
4
- import { fetchCreditAgentAccess, fetchCreditAgentAccessFailure, fetchCreditAgentAccessSuccess, } from '../creditAgentViewReducer';
5
- export const fetchCreditAgentAccessEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchCreditAgentAccess.match), switchMap(() => {
6
- const url = `${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cockpit/cards-cockpit-access`;
7
- return zeniAPI.getJSON(url).pipe(switchMap((response) => {
8
- if (isSuccessResponse(response) && response.data != null) {
9
- return of(fetchCreditAgentAccessSuccess(response.data.is_allowed === true));
10
- }
11
- return of(fetchCreditAgentAccessFailure(response.status));
12
- }), catchError((error) => of(fetchCreditAgentAccessFailure(createZeniAPIStatus('Unexpected error', 'REST API call errored out: ' + JSON.stringify(error))))));
13
- }));
@@ -1,19 +0,0 @@
1
- import { from, of } from 'rxjs';
2
- import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { updateCreditAgentMacro } from '../../../entity/creditAgent/creditAgentReducer';
4
- import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
5
- import { fetchCreditAgentMacro, fetchCreditAgentMacroFailure, fetchCreditAgentMacroSuccess, } from '../creditAgentViewReducer';
6
- export const fetchCreditAgentMacroEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(fetchCreditAgentMacro.match), switchMap(() => {
7
- const url = `${zeniAPI.apiEndPoints.aiCfoMicroServiceBaseUrl}/1.0/macros/credit-agent`;
8
- return zeniAPI.getJSON(url).pipe(mergeMap((response) => {
9
- if (isSuccessResponse(response) && response.data != null) {
10
- return from([
11
- updateCreditAgentMacro(response.data),
12
- fetchCreditAgentMacroSuccess(),
13
- ]);
14
- }
15
- else {
16
- return of(fetchCreditAgentMacroFailure(response.status));
17
- }
18
- }), catchError((error) => of(fetchCreditAgentMacroFailure(createZeniAPIStatus('Unexpected error', 'REST API call errored out: ' + JSON.stringify(error))))));
19
- }));
@@ -1,58 +0,0 @@
1
- import { from } from 'rxjs';
2
- import { catchError, filter, mergeMap, switchMap } from 'rxjs/operators';
3
- import { updateCreditAgentMacro } from '../../../entity/creditAgent/creditAgentReducer';
4
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
5
- import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
6
- import { saveCreditAgentMacro, saveCreditAgentMacroFailure, saveCreditAgentMacroSuccess, } from '../creditAgentViewReducer';
7
- export const saveCreditAgentMacroEpic = (actions$, state$, zeniAPI) => actions$.pipe(filter(saveCreditAgentMacro.match), switchMap((action) => {
8
- const { instructions } = action.payload;
9
- const existingMacro = state$.value.creditAgentEntityState.macro;
10
- // Fail fast if macro has not been loaded yet — avoids overwriting server-side
11
- // name/description fields with empty defaults.
12
- if (existingMacro == null) {
13
- return from([
14
- saveCreditAgentMacroFailure(createZeniAPIStatus('Save failed', 'Cannot save macro: macro data has not been loaded yet.')),
15
- openSnackbar({
16
- messageSection: 'credit_agent_save_macro',
17
- messageText: 'failed',
18
- type: 'error',
19
- }),
20
- ]);
21
- }
22
- const url = `${zeniAPI.apiEndPoints.aiCfoMicroServiceBaseUrl}/1.0/macros/credit-agent`;
23
- const body = {
24
- instructions,
25
- name: existingMacro.name,
26
- description: existingMacro.description,
27
- };
28
- return zeniAPI.putAndGetJSON(url, body).pipe(mergeMap((response) => {
29
- if (isSuccessResponse(response) && response.data != null) {
30
- return from([
31
- updateCreditAgentMacro(response.data),
32
- saveCreditAgentMacroSuccess(),
33
- openSnackbar({
34
- messageSection: 'credit_agent_save_macro',
35
- messageText: 'success',
36
- type: 'success',
37
- }),
38
- ]);
39
- }
40
- else {
41
- return from([
42
- saveCreditAgentMacroFailure(response.status),
43
- openSnackbar({
44
- messageSection: 'credit_agent_save_macro',
45
- messageText: 'failed',
46
- type: 'error',
47
- }),
48
- ]);
49
- }
50
- }), catchError((error) => from([
51
- saveCreditAgentMacroFailure(createZeniAPIStatus('Unexpected error', 'REST API call errored out: ' + JSON.stringify(error))),
52
- openSnackbar({
53
- messageSection: 'credit_agent_save_macro',
54
- messageText: 'failed',
55
- type: 'error',
56
- }),
57
- ])));
58
- }));
@@ -1,39 +0,0 @@
1
- import { from } from 'rxjs';
2
- import { catchError, filter, mergeMap } from 'rxjs/operators';
3
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
4
- import { createZeniAPIStatus, isSuccessResponse, } from '../../../responsePayload';
5
- import { scheduleTenantCreditScoreCron, scheduleTenantCreditScoreCronFailure, scheduleTenantCreditScoreCronSuccess, } from '../creditAgentViewReducer';
6
- export const scheduleTenantCreditScoreCronEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(scheduleTenantCreditScoreCron.match), mergeMap((action) => {
7
- const { tenantId } = action.payload;
8
- const url = `${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/crons/cards/tenant-credit-score`;
9
- const body = tenantId != null ? { tenant_id: tenantId } : {};
10
- return zeniAPI.postAndGetJSON(url, body).pipe(mergeMap((response) => {
11
- if (isSuccessResponse(response)) {
12
- return from([
13
- scheduleTenantCreditScoreCronSuccess(tenantId),
14
- openSnackbar({
15
- messageSection: 'credit_agent_schedule_cron',
16
- messageText: 'success',
17
- type: 'success',
18
- }),
19
- ]);
20
- }
21
- else {
22
- return from([
23
- scheduleTenantCreditScoreCronFailure(tenantId, response.status),
24
- openSnackbar({
25
- messageSection: 'credit_agent_schedule_cron',
26
- messageText: 'failed',
27
- type: 'error',
28
- }),
29
- ]);
30
- }
31
- }), catchError((error) => from([
32
- scheduleTenantCreditScoreCronFailure(tenantId, createZeniAPIStatus('Unexpected error', 'REST API call errored out: ' + JSON.stringify(error))),
33
- openSnackbar({
34
- messageSection: 'credit_agent_schedule_cron',
35
- messageText: 'failed',
36
- type: 'error',
37
- }),
38
- ])));
39
- }));
@@ -1,62 +0,0 @@
1
- import { from } from 'rxjs';
2
- import { catchError, filter, mergeMap } from 'rxjs/operators';
3
- import { updateCreditAgentRow } from '../../../entity/creditAgent/creditAgentReducer';
4
- import { openSnackbar } from '../../../entity/snackbar/snackbarReducer';
5
- import { createZeniAPIStatus, isSuccessResponse } from '../../../responsePayload';
6
- import { updateCardProfile, updateCardProfileFailure, updateCardProfileSuccess, } from '../creditAgentViewReducer';
7
- export const updateCardProfileEpic = (actions$, _state$, zeniAPI) => actions$.pipe(filter(updateCardProfile.match), mergeMap((action) => {
8
- const { tenantId, tenantEmailDomain, update } = action.payload;
9
- const url = `${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cockpit/card-tenant-profiles`;
10
- const body = {
11
- tenant_namespace: tenantEmailDomain,
12
- };
13
- if (update.cardStatus != null) {
14
- body.card_status = update.cardStatus;
15
- }
16
- if (update.creditLimit != null) {
17
- body.credit_limit = update.creditLimit;
18
- }
19
- if (update.updatedByName != null) {
20
- body.updated_by_name = update.updatedByName;
21
- }
22
- if (update.reason != null && update.reason.trim() !== '') {
23
- body.reason = update.reason.trim();
24
- }
25
- return zeniAPI
26
- .putAndGetJSON(url, body)
27
- .pipe(mergeMap((response) => {
28
- if (isSuccessResponse(response) &&
29
- response.data != null &&
30
- response.data.profile != null) {
31
- return from([
32
- updateCreditAgentRow({
33
- payload: response.data.profile,
34
- tenantId,
35
- }),
36
- updateCardProfileSuccess(tenantId),
37
- openSnackbar({
38
- messageSection: 'credit_agent_update_profile',
39
- messageText: 'success',
40
- type: 'success',
41
- }),
42
- ]);
43
- }
44
- else {
45
- return from([
46
- updateCardProfileFailure(tenantId, response.status),
47
- openSnackbar({
48
- messageSection: 'credit_agent_update_profile',
49
- messageText: 'failed',
50
- type: 'error',
51
- }),
52
- ]);
53
- }
54
- }), catchError((error) => from([
55
- updateCardProfileFailure(tenantId, createZeniAPIStatus('Unexpected error', 'REST API call errored out: ' + JSON.stringify(error))),
56
- openSnackbar({
57
- messageSection: 'credit_agent_update_profile',
58
- messageText: 'failed',
59
- type: 'error',
60
- }),
61
- ])));
62
- }));