@zeniai/client-epic-state 4.15.84 → 4.15.85

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 (129) hide show
  1. package/lib/commonStateTypes/animations.d.ts +1 -1
  2. package/lib/commonStateTypes/animations.js +1 -1
  3. package/lib/entity/chargeCard/chargeCard.d.ts +26 -8
  4. package/lib/entity/chargeCard/chargeCard.js +25 -6
  5. package/lib/entity/chargeCard/chargeCardPayload.d.ts +41 -5
  6. package/lib/entity/chargeCard/chargeCardPayload.js +20 -8
  7. package/lib/entity/company/companyPayload.d.ts +12 -1
  8. package/lib/entity/company/companyPayload.js +14 -0
  9. package/lib/entity/company/companyStateTypes.d.ts +11 -0
  10. package/lib/entity/connectedAccount/connectedAccount.d.ts +19 -0
  11. package/lib/entity/connectedAccount/connectedAccount.js +10 -0
  12. package/lib/entity/connectedAccount/connectedAccountPayload.d.ts +11 -0
  13. package/lib/entity/connectedAccount/connectedAccountPayload.js +15 -0
  14. package/lib/entity/connectedAccount/connectedAccountReducer.d.ts +6 -0
  15. package/lib/entity/connectedAccount/connectedAccountReducer.js +27 -0
  16. package/lib/entity/connectedAccount/connectedAccountSelector.d.ts +4 -0
  17. package/lib/entity/connectedAccount/connectedAccountSelector.js +17 -0
  18. package/lib/entity/depositAccount/depositAccount.d.ts +20 -2
  19. package/lib/entity/depositAccount/depositAccountPayload.d.ts +22 -1
  20. package/lib/entity/depositAccount/depositAccountPayload.js +39 -1
  21. package/lib/entity/depositAccount/depositAccountReducer.d.ts +2 -2
  22. package/lib/entity/depositAccount/depositAccountReducer.js +8 -2
  23. package/lib/entity/depositAccount/depositAccountSelector.d.ts +3 -1
  24. package/lib/entity/depositAccount/depositAccountSelector.js +10 -0
  25. package/lib/entity/snackbar/snackbarTypes.d.ts +1 -1
  26. package/lib/entity/snackbar/snackbarTypes.js +2 -0
  27. package/lib/entity/tenant/clearAllEpic.d.ts +2 -1
  28. package/lib/entity/tenant/clearAllEpic.js +2 -0
  29. package/lib/entity/tenant/tenantSelector.d.ts +5 -1
  30. package/lib/entity/tenant/tenantSelector.js +6 -0
  31. package/lib/epic.d.ts +5 -1
  32. package/lib/epic.js +5 -1
  33. package/lib/index.d.ts +11 -11
  34. package/lib/index.js +21 -13
  35. package/lib/reducer.d.ts +3 -0
  36. package/lib/reducer.js +3 -0
  37. package/lib/view/addressView/__mocks__/json/createCompanyAddressSuccess.json +8 -0
  38. package/lib/view/addressView/__mocks__/json/createCompanyUserAddressSuccess.json +16 -0
  39. package/lib/view/addressView/addressViewState.d.ts +1 -1
  40. package/lib/view/spendManagement/billPay/billPayReview/billPayReviewSelector.js +1 -1
  41. package/lib/view/spendManagement/billPay/editBillView/editBillViewSelector.js +1 -1
  42. package/lib/view/spendManagement/chargeCards/cardUserOnboarding/cardUserOnboardingSelector.js +4 -3
  43. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigPayload.d.ts +5 -3
  44. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigPayload.js +4 -2
  45. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigReducer.js +8 -3
  46. package/lib/view/spendManagement/chargeCards/chargeCardConfig/chargeCardConfigState.d.ts +4 -2
  47. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetail.d.ts +12 -0
  48. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetail.js +26 -0
  49. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailPayload.d.ts +2 -0
  50. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer.d.ts +43 -4
  51. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailReducer.js +104 -9
  52. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailSelector.d.ts +15 -0
  53. package/lib/view/spendManagement/chargeCards/chargeCardDetail/chargeCardDetailSelector.js +70 -16
  54. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailEpic.d.ts +2 -1
  55. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardDetailEpic.js +12 -3
  56. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchChargeCardTransactionListEpic.js +2 -1
  57. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchDepositAccountLimitEpic.d.ts +8 -0
  58. package/lib/view/spendManagement/chargeCards/chargeCardDetail/fetchDepositAccountLimitEpic.js +41 -0
  59. package/lib/view/spendManagement/chargeCards/chargeCardDetail/updateChargeCardLimitEpic.js +2 -2
  60. package/lib/view/spendManagement/chargeCards/chargeCardDetail/updateDebitCardPinAttemptEpic.d.ts +11 -0
  61. package/lib/view/spendManagement/chargeCards/chargeCardDetail/updateDebitCardPinAttemptEpic.js +42 -0
  62. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.d.ts +11 -1
  63. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardList.js +20 -1
  64. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListPayload.d.ts +16 -1
  65. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.d.ts +5 -3
  66. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListReducer.js +30 -4
  67. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.d.ts +5 -2
  68. package/lib/view/spendManagement/chargeCards/chargeCardList/chargeCardListSelector.js +24 -13
  69. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchChargeCardListPageEpic.d.ts +2 -2
  70. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchChargeCardListPageEpic.js +16 -2
  71. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchDebitCardSummaryEpic.d.ts +7 -0
  72. package/lib/view/spendManagement/chargeCards/chargeCardList/fetchDebitCardSummaryEpic.js +23 -0
  73. package/lib/view/spendManagement/chargeCards/chargeCardSetUp/chargeCardSetUpViewReducer.d.ts +2 -1
  74. package/lib/view/spendManagement/chargeCards/chargeCardSetUp/chargeCardSetUpViewReducer.js +4 -2
  75. package/lib/view/spendManagement/chargeCards/chargeCardSetUp/chargeCardSetUpViewSelector.d.ts +2 -1
  76. package/lib/view/spendManagement/chargeCards/chargeCardSetUp/chargeCardSetUpViewSelector.js +2 -0
  77. package/lib/view/spendManagement/chargeCards/chargeCardSetUp/epic/acceptChargeCardTermsEpic.js +19 -2
  78. package/lib/view/spendManagement/chargeCards/issueChargeCard/depositAccountWithLimitPayload.d.ts +6 -0
  79. package/lib/view/spendManagement/chargeCards/issueChargeCard/depositAccountWithLimitPayload.js +2 -0
  80. package/lib/view/spendManagement/chargeCards/issueChargeCard/fetchDepositAccountListForCardsEpic.d.ts +8 -0
  81. package/lib/view/spendManagement/chargeCards/issueChargeCard/fetchDepositAccountListForCardsEpic.js +31 -0
  82. package/lib/view/spendManagement/chargeCards/issueChargeCard/fetchIssueCardPageEpic.d.ts +2 -2
  83. package/lib/view/spendManagement/chargeCards/issueChargeCard/fetchIssueCardPageEpic.js +15 -3
  84. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.d.ts +2 -2
  85. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardEpic.js +65 -25
  86. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.d.ts +11 -3
  87. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardReducer.js +45 -11
  88. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.d.ts +6 -3
  89. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardSelector.js +33 -18
  90. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.d.ts +41 -8
  91. package/lib/view/spendManagement/chargeCards/issueChargeCard/issueChargeCardState.js +0 -21
  92. package/lib/view/spendManagement/commonSetup/epic/setup/enableSetupEpic.js +9 -0
  93. package/lib/view/spendManagement/commonSetup/epic/setup/updateBusinessVerificationDetailsEpic.js +8 -3
  94. package/lib/view/spendManagement/commonSetup/setupViewReducer.d.ts +4 -4
  95. package/lib/view/spendManagement/commonSetup/setupViewSelector.js +2 -1
  96. package/lib/view/spendManagement/commonSetup/setupViewState.d.ts +3 -1
  97. package/lib/view/spendManagement/commonSetup/setupViewState.js +13 -1
  98. package/lib/view/spendManagement/helpers.d.ts +3 -0
  99. package/lib/view/spendManagement/helpers.js +13 -1
  100. package/lib/view/spendManagement/plaidAccount/epic/paymentAccounts/getPaymentAccountsEpic.js +2 -1
  101. package/lib/view/spendManagement/plaidAccount/epic/paymentAccounts/updatePaymentAccountEpic.js +2 -1
  102. package/lib/view/spendManagement/plaidAccount/epic/paymentAccounts/updatePaymentAccountLoginStatusEpic.js +2 -1
  103. package/lib/view/spendManagement/plaidAccount/epic/paymentAccounts/updatePaymentAccountStatusEpic.js +2 -1
  104. package/lib/view/spendManagement/plaidAccount/epic/plaidConnection/establishPlaidConnectionEpic.js +2 -1
  105. package/lib/view/spendManagement/plaidAccount/plaidAccountViewReducer.d.ts +10 -10
  106. package/lib/view/spendManagement/zeniAccounts/checkDeposit/checkDepositSelector.js +1 -1
  107. package/lib/view/spendManagement/zeniAccounts/depositAccountList/depositAccountListSelector.d.ts +1 -1
  108. package/lib/view/spendManagement/zeniAccounts/depositAccountList/depositAccountListSelector.js +3 -3
  109. package/lib/view/spendManagement/zeniAccounts/expressPay/expressPaySelector.js +1 -1
  110. package/lib/view/spendManagement/zeniAccounts/transferDetail/transferDetailSelector.js +1 -1
  111. package/lib/view/spendManagement/zeniAccounts/zeniAccountList/zeniAccountListSelector.js +1 -1
  112. package/lib/view/twoFactorAuthentication/resendOtpEpic.d.ts +3 -2
  113. package/lib/view/twoFactorAuthentication/resendOtpEpic.js +44 -19
  114. package/lib/view/twoFactorAuthentication/sendOtpEpic.d.ts +2 -1
  115. package/lib/view/twoFactorAuthentication/sendOtpEpic.js +45 -18
  116. package/lib/view/twoFactorAuthentication/twoFactorAuthentication.d.ts +17 -5
  117. package/lib/view/twoFactorAuthentication/twoFactorAuthentication.js +33 -0
  118. package/lib/view/twoFactorAuthentication/twoFactorAuthenticationPayload.d.ts +7 -7
  119. package/lib/view/twoFactorAuthentication/twoFactorAuthenticationPayload.js +6 -6
  120. package/lib/view/twoFactorAuthentication/twoFactorAuthenticationReducer.d.ts +22 -6
  121. package/lib/view/twoFactorAuthentication/twoFactorAuthenticationReducer.js +176 -60
  122. package/lib/view/twoFactorAuthentication/twoFactorAuthenticationSelector.d.ts +5 -3
  123. package/lib/view/twoFactorAuthentication/twoFactorAuthenticationSelector.js +13 -2
  124. package/lib/view/twoFactorAuthentication/verifyOtpEpic.d.ts +5 -2
  125. package/lib/view/twoFactorAuthentication/verifyOtpEpic.js +46 -5
  126. package/lib/view/userListView/fetchUserListByTypeEpic.d.ts +2 -2
  127. package/lib/view/userListView/fetchUserListByTypeEpic.js +4 -3
  128. package/lib/view/userListView/userListViewPayload.d.ts +11 -0
  129. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateDepositAccountLimitsForChargeCard } from '../../../../entity/depositAccount/depositAccountReducer';
4
+ import { RootState } from '../../../../reducer';
5
+ import { ZeniAPI } from '../../../../zeniAPI';
6
+ import { fetchDepositAccountLimit, updateDepositAccountLimitFetchStatus } from './chargeCardDetailReducer';
7
+ export type ActionType = ReturnType<typeof fetchDepositAccountLimit> | ReturnType<typeof updateDepositAccountLimitsForChargeCard> | ReturnType<typeof updateDepositAccountLimitFetchStatus>;
8
+ export declare const fetchDepositAccountLimitEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchDepositAccountLimitEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const depositAccountReducer_1 = require("../../../../entity/depositAccount/depositAccountReducer");
7
+ const responsePayload_1 = require("../../../../responsePayload");
8
+ const chargeCardDetailReducer_1 = require("./chargeCardDetailReducer");
9
+ const fetchDepositAccountLimitEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(chargeCardDetailReducer_1.fetchDepositAccountLimit.match), (0, operators_1.switchMap)((action) => {
10
+ const { depositAccountId, chargeCardId } = action.payload;
11
+ const query = {
12
+ deposit_account_id: depositAccountId,
13
+ };
14
+ return zeniAPI
15
+ .getJSON(`${zeniAPI.apiEndPoints.bankingMicroServiceBaseUrl}/1.0/deposit-accounts/limits?query=${JSON.stringify(query)}`)
16
+ .pipe((0, operators_1.mergeMap)((response) => {
17
+ var _a, _b;
18
+ if ((0, responsePayload_1.isSuccessResponse)(response)) {
19
+ return (0, rxjs_1.of)((0, depositAccountReducer_1.updateDepositAccountLimitsForChargeCard)((_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.deposit_accounts) !== null && _b !== void 0 ? _b : []), (0, chargeCardDetailReducer_1.updateDepositAccountLimitFetchStatus)({
20
+ chargeCardId,
21
+ fetchState: 'Completed',
22
+ error: undefined,
23
+ }));
24
+ }
25
+ else {
26
+ return (0, rxjs_1.of)((0, chargeCardDetailReducer_1.updateDepositAccountLimitFetchStatus)({
27
+ chargeCardId,
28
+ fetchState: 'Error',
29
+ error: response.status,
30
+ }));
31
+ }
32
+ }), (0, operators_1.catchError)((error) => {
33
+ return (0, rxjs_1.of)((0, chargeCardDetailReducer_1.updateDepositAccountLimitFetchStatus)({
34
+ chargeCardId,
35
+ fetchState: 'Error',
36
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch deposit Accounts Limit For Card Detail REST API call errored out' +
37
+ JSON.stringify(error)),
38
+ }));
39
+ }));
40
+ }));
41
+ exports.fetchDepositAccountLimitEpic = fetchDepositAccountLimitEpic;
@@ -10,9 +10,9 @@ const chargeCardDetailReducer_1 = require("./chargeCardDetailReducer");
10
10
  const updateChargeCardLimitEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(chargeCardDetailReducer_1.updateChargeCardSpendLimit.match), (0, operators_1.switchMap)((action) => {
11
11
  const { chargeCardId, updatedSpendLimit, frequency, formattedAmount } = action.payload;
12
12
  const payload = {
13
- credit_limit: updatedSpendLimit.amount,
13
+ purchase_limit: updatedSpendLimit.amount,
14
14
  currency_code: updatedSpendLimit.currencyCode,
15
- credit_limit_frequency: {
15
+ purchase_limit_frequency: {
16
16
  code: frequency,
17
17
  },
18
18
  };
@@ -0,0 +1,11 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { updateAddress, updateAddresses } from '../../../../entity/address/addressReducer';
4
+ import { updateChargeCard } from '../../../../entity/chargeCard/chargeCardReducer';
5
+ import { updateAllUsers } from '../../../../entity/user/userReducer';
6
+ import { updateUserRoles } from '../../../../entity/userRole/userRoleReducer';
7
+ import { RootState } from '../../../../reducer';
8
+ import { ZeniAPI } from '../../../../zeniAPI';
9
+ import { updateDebitCardPinAttempt, updateDebitCardPinAttemptSuccessOrFailure } from './chargeCardDetailReducer';
10
+ export type ActionType = ReturnType<typeof updateDebitCardPinAttempt> | ReturnType<typeof updateDebitCardPinAttemptSuccessOrFailure> | ReturnType<typeof updateAllUsers> | ReturnType<typeof updateUserRoles> | ReturnType<typeof updateAddress> | ReturnType<typeof updateAddresses> | ReturnType<typeof updateChargeCard>;
11
+ export declare const updateDebitCardPinAttemptEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateDebitCardPinAttemptEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const chargeCardReducer_1 = require("../../../../entity/chargeCard/chargeCardReducer");
7
+ const userReducer_1 = require("../../../../entity/user/userReducer");
8
+ const userRoleReducer_1 = require("../../../../entity/userRole/userRoleReducer");
9
+ const responsePayload_1 = require("../../../../responsePayload");
10
+ const chargeCardDetailReducer_1 = require("./chargeCardDetailReducer");
11
+ const updateDebitCardPinAttemptEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(chargeCardDetailReducer_1.updateDebitCardPinAttempt.match), (0, operators_1.switchMap)((action) => {
12
+ const { chargeCardId, statusCode } = action.payload;
13
+ const payload = {
14
+ status_code: statusCode,
15
+ is_card_pin_change_attempted: true,
16
+ };
17
+ return zeniAPI
18
+ .putAndGetJSON(`${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cards/${chargeCardId}/pin/events`, payload)
19
+ .pipe((0, operators_1.mergeMap)((response) => {
20
+ if ((0, responsePayload_1.isSuccessStatus)(response) && response.data != null) {
21
+ return (0, rxjs_1.of)((0, chargeCardReducer_1.updateChargeCard)(response.data.card), (0, userReducer_1.updateAllUsers)({ users: response.data.users }), (0, userRoleReducer_1.updateUserRoles)(response.data.user_roles), (0, chargeCardDetailReducer_1.updateDebitCardPinAttemptSuccessOrFailure)({
22
+ chargeCardId,
23
+ fetchState: 'Completed',
24
+ }));
25
+ }
26
+ else {
27
+ return (0, rxjs_1.of)((0, chargeCardDetailReducer_1.updateDebitCardPinAttemptSuccessOrFailure)({
28
+ chargeCardId,
29
+ fetchState: 'Error',
30
+ error: response.status,
31
+ }));
32
+ }
33
+ }), (0, operators_1.catchError)((error) => {
34
+ return (0, rxjs_1.of)((0, chargeCardDetailReducer_1.updateDebitCardPinAttemptSuccessOrFailure)({
35
+ chargeCardId,
36
+ fetchState: 'Error',
37
+ error: (0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Update physical card attempt API call errored out' +
38
+ JSON.stringify(error)),
39
+ }));
40
+ }));
41
+ }));
42
+ exports.updateDebitCardPinAttemptEpic = updateDebitCardPinAttemptEpic;
@@ -1,10 +1,12 @@
1
1
  import { Amount } from '../../../../commonStateTypes/amount';
2
2
  import { FetchStateAndError, FetchedState, ID } from '../../../../commonStateTypes/common';
3
+ import { ZeniDate } from '../../../../zeniDayJS';
3
4
  import { SpendManagementUIState } from '../../billPay/billList/billListState';
4
5
  export interface ChargeCardListState extends FetchedState {
5
6
  cardIds: ID[];
6
7
  uiState: ChargeCardListUIState;
7
8
  creditAccount: CreditAccount;
9
+ debitCardSummaries: DebitCardSummaries;
8
10
  searchText: string;
9
11
  unAssignedCredits?: Amount;
10
12
  resendCardInvite: ResendRevokeCardInvite;
@@ -17,6 +19,13 @@ export interface ResendRevokeCardInvite {
17
19
  export interface ChargeCardListUIState extends SpendManagementUIState {
18
20
  sortKey: ChargeCardViewSortKey;
19
21
  }
22
+ export interface DebitCardSummaries extends FetchStateAndError {
23
+ currentMonthSpends: Amount;
24
+ lastCompletedMonthSpends: Amount;
25
+ spendsPercentChange: number;
26
+ lastCompletedMonthStartTime: ZeniDate;
27
+ lastCompletedMonthEndTime: ZeniDate;
28
+ }
20
29
  export interface CreditAccount extends FetchStateAndError {
21
30
  id: ID;
22
31
  status: CreditAccountStatusType;
@@ -27,8 +36,9 @@ export interface CreditAccount extends FetchStateAndError {
27
36
  cashback?: Amount;
28
37
  }
29
38
  export declare const initialCreditAcc: CreditAccount;
39
+ export declare const initialDebitCardSummaries: DebitCardSummaries;
30
40
  export declare const initialResendRevokeCardInvite: ResendRevokeCardInvite;
31
- export declare const toChargeCardSortKeyType: (v: string) => "status" | "owner" | "cardName" | "limit" | "department" | "utilisation";
41
+ export declare const toChargeCardSortKeyType: (v: string) => "status" | "owner" | "cardName" | "limit" | "department" | "cardType" | "utilisation";
32
42
  export declare type ChargeCardViewSortKey = ReturnType<typeof toChargeCardSortKeyType>;
33
43
  export declare const ALL_CASHBACK_SORT_KEYS: readonly ["month", "cashback"];
34
44
  export declare const toCashbackSortKeyType: (v: string) => "month" | "cashback";
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toCreditAccountStatusType = exports.toCashbackSortKeyType = exports.ALL_CASHBACK_SORT_KEYS = exports.toChargeCardSortKeyType = exports.initialResendRevokeCardInvite = exports.initialCreditAcc = void 0;
3
+ exports.toCreditAccountStatusType = exports.toCashbackSortKeyType = exports.ALL_CASHBACK_SORT_KEYS = exports.toChargeCardSortKeyType = exports.initialResendRevokeCardInvite = exports.initialDebitCardSummaries = exports.initialCreditAcc = void 0;
4
4
  const stringToUnion_1 = require("../../../../commonStateTypes/stringToUnion");
5
+ const zeniDayJS_1 = require("../../../../zeniDayJS");
5
6
  exports.initialCreditAcc = {
6
7
  fetchState: 'Not-Started',
7
8
  error: undefined,
@@ -33,6 +34,23 @@ exports.initialCreditAcc = {
33
34
  currencySymbol: '$',
34
35
  },
35
36
  };
37
+ exports.initialDebitCardSummaries = {
38
+ fetchState: 'Not-Started',
39
+ error: undefined,
40
+ currentMonthSpends: {
41
+ amount: 0,
42
+ currencyCode: 'USD',
43
+ currencySymbol: '$',
44
+ },
45
+ lastCompletedMonthSpends: {
46
+ amount: 0,
47
+ currencyCode: 'USD',
48
+ currencySymbol: '$',
49
+ },
50
+ spendsPercentChange: 0,
51
+ lastCompletedMonthStartTime: (0, zeniDayJS_1.dateNow)(),
52
+ lastCompletedMonthEndTime: (0, zeniDayJS_1.dateNow)(),
53
+ };
36
54
  exports.initialResendRevokeCardInvite = {
37
55
  cardId: undefined,
38
56
  saveStatus: {
@@ -44,6 +62,7 @@ const ALL_CHARGE_CARD_SORT_KEYS = [
44
62
  'owner',
45
63
  'cardName',
46
64
  'department',
65
+ 'cardType',
47
66
  'status',
48
67
  'utilisation',
49
68
  'limit',
@@ -1,10 +1,11 @@
1
+ import { ID } from '../../../../commonStateTypes/common';
1
2
  import { AddressPayload } from '../../../../entity/address/addressPayload';
2
3
  import { ChargeCardPayload } from '../../../../entity/chargeCard/chargeCardPayload';
3
4
  import { AmountPayload } from '../../../../entity/reimbursement/reimbursementPayload';
4
5
  import { UserPayload } from '../../../../entity/user/userPayload';
5
6
  import { UserRolePayload } from '../../../../entity/userRole/userRolePayload';
6
7
  import { ZeniAPIResponse } from '../../../../responsePayload';
7
- import { ActiveChargeCardCountPayload } from '../../../../view/userListView/userListViewPayload';
8
+ import { ActiveChargeCardCountPayload, ActiveDebitCardCountByUserIdPayload } from '../../../../view/userListView/userListViewPayload';
8
9
  export interface ChargeCardListPayload {
9
10
  cards: ChargeCardPayload[];
10
11
  unassigned_credit?: AmountPayload;
@@ -12,6 +13,7 @@ export interface ChargeCardListPayload {
12
13
  user_roles: UserRolePayload[];
13
14
  addresses: AddressPayload[];
14
15
  cards_count_by_user_id?: ActiveChargeCardCountPayload[];
16
+ debit_cards_count_by_deposit_account_id?: Record<ID, ActiveDebitCardCountByUserIdPayload>;
15
17
  }
16
18
  export type FetchChargeCardListResponse = ZeniAPIResponse<ChargeCardListPayload>;
17
19
  export interface CreditAccountPayload {
@@ -35,5 +37,18 @@ interface CreditAccountListPayload {
35
37
  credit_accounts: CreditAccountPayload[];
36
38
  }
37
39
  export type FetchCreditAccountResponse = ZeniAPIResponse<CreditAccountListPayload>;
40
+ export interface DebitCardSummariesPayload {
41
+ current_month_spends: number;
42
+ last_completed_month_spends: number;
43
+ currency_code: string;
44
+ currency_symbol: string;
45
+ spends_percent_change: number;
46
+ last_completed_month_start_time: string;
47
+ last_completed_month_end_time: string;
48
+ }
49
+ interface DebitCardSummaryPayload {
50
+ debit_card_summaries: DebitCardSummariesPayload;
51
+ }
52
+ export type FetchDebitCardSummaryResponse = ZeniAPIResponse<DebitCardSummaryPayload>;
38
53
  export type ResendInviteResponse = ZeniAPIResponse<ChargeCardPayload>;
39
54
  export {};
@@ -1,12 +1,14 @@
1
1
  import { ID } from '../../../../commonStateTypes/common';
2
2
  import { ZeniAPIStatus } from '../../../../responsePayload';
3
3
  import { ChargeCardListState, ChargeCardListUIState } from './chargeCardList';
4
- import { ChargeCardListPayload, CreditAccountPayload } from './chargeCardListPayload';
4
+ import { ChargeCardListPayload, CreditAccountPayload, DebitCardSummariesPayload } from './chargeCardListPayload';
5
5
  export declare const initialState: ChargeCardListState;
6
- export declare const fetchChargeCardListPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[doFetchCreditAccountsAndCashback: boolean, cacheOverride?: any], {
6
+ export declare const fetchChargeCardListPage: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[doFetchCreditAccountsAndCashback: boolean, isDebitCardEnabled: boolean, isCreditCardEnabled: boolean, cacheOverride?: any], {
7
7
  doFetchCreditAccountsAndCashback: boolean;
8
+ isDebitCardEnabled: boolean;
9
+ isCreditCardEnabled: boolean;
8
10
  cacheOverride: any;
9
- }, "chargeCardList/fetchChargeCardListPage", never, never>, fetchCreditAccount: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardList/fetchCreditAccount">, updateCreditAccount: import("@reduxjs/toolkit").ActionCreatorWithPayload<CreditAccountPayload[], "chargeCardList/updateCreditAccount">, updateCreditAccountFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "chargeCardList/updateCreditAccountFailure">, fetchChargeCardList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardList/fetchChargeCardList">, updateChargeCardList: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
11
+ }, "chargeCardList/fetchChargeCardListPage", never, never>, fetchCreditAccount: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardList/fetchCreditAccount">, updateCreditAccount: import("@reduxjs/toolkit").ActionCreatorWithPayload<CreditAccountPayload[], "chargeCardList/updateCreditAccount">, updateCreditAccountFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "chargeCardList/updateCreditAccountFailure">, fetchDebitCardSummary: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardList/fetchDebitCardSummary">, updateDebitCardSummary: import("@reduxjs/toolkit").ActionCreatorWithPayload<DebitCardSummariesPayload, "chargeCardList/updateDebitCardSummary">, updateDebitCardSummaryFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "chargeCardList/updateDebitCardSummaryFailure">, fetchChargeCardList: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardList/fetchChargeCardList">, updateChargeCardList: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
10
12
  chargeCardListPayload: ChargeCardListPayload;
11
13
  keepExistingListItems?: boolean;
12
14
  }, "chargeCardList/updateChargeCardList">, updateChargeCardListFailure: import("@reduxjs/toolkit").ActionCreatorWithPayload<ZeniAPIStatus<Record<string, unknown>>, "chargeCardList/updateChargeCardListFailure">, updateSearchText: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chargeCardList/updateSearchText">, updateChargeCardListUIState: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.revokeCardInviteFailure = exports.revokeCardInviteSuccess = exports.revokeCardInvite = exports.resendCardInviteFailure = exports.resendCardInviteSuccess = exports.resendCardInvite = exports.clearChargeCardList = exports.updateChargeCardListUIState = exports.updateSearchText = exports.updateChargeCardListFailure = exports.updateChargeCardList = exports.fetchChargeCardList = exports.updateCreditAccountFailure = exports.updateCreditAccount = exports.fetchCreditAccount = exports.fetchChargeCardListPage = exports.initialState = void 0;
4
+ exports.revokeCardInviteFailure = exports.revokeCardInviteSuccess = exports.revokeCardInvite = exports.resendCardInviteFailure = exports.resendCardInviteSuccess = exports.resendCardInvite = exports.clearChargeCardList = exports.updateChargeCardListUIState = exports.updateSearchText = exports.updateChargeCardListFailure = exports.updateChargeCardList = exports.fetchChargeCardList = exports.updateDebitCardSummaryFailure = exports.updateDebitCardSummary = exports.fetchDebitCardSummary = exports.updateCreditAccountFailure = exports.updateCreditAccount = exports.fetchCreditAccount = exports.fetchChargeCardListPage = exports.initialState = void 0;
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const amount_1 = require("../../../../commonStateTypes/amount");
7
+ const zeniDayJS_1 = require("../../../../zeniDayJS");
7
8
  const chargeCardList_1 = require("./chargeCardList");
8
9
  exports.initialState = {
9
10
  fetchState: 'Not-Started',
@@ -12,6 +13,7 @@ exports.initialState = {
12
13
  searchText: '',
13
14
  unAssignedCredits: undefined,
14
15
  creditAccount: chargeCardList_1.initialCreditAcc,
16
+ debitCardSummaries: chargeCardList_1.initialDebitCardSummaries,
15
17
  hasValidState() {
16
18
  return this.fetchState == 'Completed';
17
19
  },
@@ -30,9 +32,14 @@ const chargeCardList = (0, toolkit_1.createSlice)({
30
32
  reducer() {
31
33
  //do nothing
32
34
  },
33
- prepare(doFetchCreditAccountsAndCashback, cacheOverride = false) {
35
+ prepare(doFetchCreditAccountsAndCashback, isDebitCardEnabled, isCreditCardEnabled, cacheOverride = false) {
34
36
  return {
35
- payload: { doFetchCreditAccountsAndCashback, cacheOverride },
37
+ payload: {
38
+ doFetchCreditAccountsAndCashback,
39
+ isDebitCardEnabled,
40
+ isCreditCardEnabled,
41
+ cacheOverride,
42
+ },
36
43
  };
37
44
  },
38
45
  },
@@ -48,6 +55,16 @@ const chargeCardList = (0, toolkit_1.createSlice)({
48
55
  updateCreditAccountFailure(draft, action) {
49
56
  draft.creditAccount = Object.assign(Object.assign({}, chargeCardList_1.initialCreditAcc), { fetchState: 'Error', error: action.payload });
50
57
  },
58
+ fetchDebitCardSummary(draft) {
59
+ draft.debitCardSummaries.fetchState = 'In-Progress';
60
+ draft.debitCardSummaries.error = undefined;
61
+ },
62
+ updateDebitCardSummary(draft, action) {
63
+ draft.debitCardSummaries = toDebitCardSummaries(action.payload);
64
+ },
65
+ updateDebitCardSummaryFailure(draft, action) {
66
+ draft.debitCardSummaries = Object.assign(Object.assign({}, chargeCardList_1.initialDebitCardSummaries), { fetchState: 'Error', error: action.payload });
67
+ },
51
68
  fetchChargeCardList(draft) {
52
69
  draft.fetchState = 'In-Progress';
53
70
  draft.error = undefined;
@@ -128,7 +145,7 @@ const chargeCardList = (0, toolkit_1.createSlice)({
128
145
  },
129
146
  },
130
147
  });
131
- _a = chargeCardList.actions, exports.fetchChargeCardListPage = _a.fetchChargeCardListPage, exports.fetchCreditAccount = _a.fetchCreditAccount, exports.updateCreditAccount = _a.updateCreditAccount, exports.updateCreditAccountFailure = _a.updateCreditAccountFailure, exports.fetchChargeCardList = _a.fetchChargeCardList, exports.updateChargeCardList = _a.updateChargeCardList, exports.updateChargeCardListFailure = _a.updateChargeCardListFailure, exports.updateSearchText = _a.updateSearchText, exports.updateChargeCardListUIState = _a.updateChargeCardListUIState, exports.clearChargeCardList = _a.clearChargeCardList, exports.resendCardInvite = _a.resendCardInvite, exports.resendCardInviteSuccess = _a.resendCardInviteSuccess, exports.resendCardInviteFailure = _a.resendCardInviteFailure, exports.revokeCardInvite = _a.revokeCardInvite, exports.revokeCardInviteSuccess = _a.revokeCardInviteSuccess, exports.revokeCardInviteFailure = _a.revokeCardInviteFailure;
148
+ _a = chargeCardList.actions, exports.fetchChargeCardListPage = _a.fetchChargeCardListPage, exports.fetchCreditAccount = _a.fetchCreditAccount, exports.updateCreditAccount = _a.updateCreditAccount, exports.updateCreditAccountFailure = _a.updateCreditAccountFailure, exports.fetchDebitCardSummary = _a.fetchDebitCardSummary, exports.updateDebitCardSummary = _a.updateDebitCardSummary, exports.updateDebitCardSummaryFailure = _a.updateDebitCardSummaryFailure, exports.fetchChargeCardList = _a.fetchChargeCardList, exports.updateChargeCardList = _a.updateChargeCardList, exports.updateChargeCardListFailure = _a.updateChargeCardListFailure, exports.updateSearchText = _a.updateSearchText, exports.updateChargeCardListUIState = _a.updateChargeCardListUIState, exports.clearChargeCardList = _a.clearChargeCardList, exports.resendCardInvite = _a.resendCardInvite, exports.resendCardInviteSuccess = _a.resendCardInviteSuccess, exports.resendCardInviteFailure = _a.resendCardInviteFailure, exports.revokeCardInvite = _a.revokeCardInvite, exports.revokeCardInviteSuccess = _a.revokeCardInviteSuccess, exports.revokeCardInviteFailure = _a.revokeCardInviteFailure;
132
149
  exports.default = chargeCardList.reducer;
133
150
  // helper
134
151
  const toCreditAccount = (payload) => ({
@@ -144,3 +161,12 @@ const toCreditAccount = (payload) => ({
144
161
  fetchState: 'Completed',
145
162
  error: undefined,
146
163
  });
164
+ const toDebitCardSummaries = (payload) => ({
165
+ currentMonthSpends: (0, amount_1.toAmount)(payload.current_month_spends, payload.currency_code, payload.currency_symbol),
166
+ lastCompletedMonthSpends: (0, amount_1.toAmount)(payload.last_completed_month_spends, payload.currency_code, payload.currency_symbol),
167
+ spendsPercentChange: payload.spends_percent_change,
168
+ lastCompletedMonthStartTime: (0, zeniDayJS_1.date)(payload.last_completed_month_start_time),
169
+ lastCompletedMonthEndTime: (0, zeniDayJS_1.date)(payload.last_completed_month_end_time),
170
+ fetchState: 'Completed',
171
+ error: undefined,
172
+ });
@@ -9,7 +9,7 @@ import { UserRole } from '../../../../entity/userRole/userRoleState';
9
9
  import { RootState } from '../../../../reducer';
10
10
  import { Person } from '../../../people/peopleSelectorTypes';
11
11
  import { ChargeCardConfigState } from '../chargeCardConfig/chargeCardConfigState';
12
- import { ChargeCardListUIState, CreditAccount, ResendRevokeCardInvite } from './chargeCardList';
12
+ import { ChargeCardListUIState, CreditAccount, DebitCardSummaries, ResendRevokeCardInvite } from './chargeCardList';
13
13
  export interface ChargeCardWithUser extends ChargeCard {
14
14
  cardCreatedByUser: User;
15
15
  cardHolderUser: User;
@@ -33,6 +33,9 @@ export interface ChargeCardListSelectorView extends SelectorView {
33
33
  searchText: string;
34
34
  resendCardInvite: ResendRevokeCardInvite;
35
35
  revokeCardInvite: ResendRevokeCardInvite;
36
+ hasCreditCard: boolean;
37
+ hasDebitCard: boolean;
38
+ debitCardSummary?: DebitCardSummaries;
36
39
  unAssignedCredits?: Amount;
37
40
  }
38
41
  export interface MyPendingActivationChargeCardListSelectorView extends SelectorView {
@@ -42,7 +45,7 @@ export interface MyPendingActivationChargeCardListSelectorView extends SelectorV
42
45
  export interface ChargeCardListWithShippingAddressSelectorView extends SelectorView {
43
46
  cards: ChargeCardWithUserAndShippingAddress[];
44
47
  }
45
- export declare const getChargeCardListView: (state: RootState, includeCreditAccountAndCashbackInfo: boolean) => ChargeCardListSelectorView;
48
+ export declare const getChargeCardListView: (state: RootState, includeCreditAccountAndCashbackInfo: boolean, isDebitCardEnabled: boolean, isCreditCardEnabled: boolean) => ChargeCardListSelectorView;
46
49
  export declare const getMyPendingActivationChargeCardListView: (state: RootState) => MyPendingActivationChargeCardListSelectorView;
47
50
  export declare const getMyChargeCardListWithShippingAddress: (state: RootState) => ChargeCardListWithShippingAddressSelectorView;
48
51
  /**
@@ -13,7 +13,7 @@ const classSelector_1 = require("../../../../entity/class/classSelector");
13
13
  const userSelector_1 = require("../../../../entity/user/userSelector");
14
14
  const userRoleSelector_1 = require("../../../../entity/userRole/userRoleSelector");
15
15
  const userListViewSelector_1 = require("../../../userListView/userListViewSelector");
16
- const getChargeCardListView = (state, includeCreditAccountAndCashbackInfo) => {
16
+ const getChargeCardListView = (state, includeCreditAccountAndCashbackInfo, isDebitCardEnabled, isCreditCardEnabled) => {
17
17
  const { chargeCardListState, chargeCardState, classState, userState, userRoleState, chargeCardConfigState, classListState, cashbackDetailState, userListViewState, } = state;
18
18
  const searchText = chargeCardListState.searchText.toLowerCase();
19
19
  const cards = (0, chargeCardSelector_1.getChargeCardsByIds)(chargeCardState, chargeCardListState.cardIds);
@@ -37,15 +37,20 @@ const getChargeCardListView = (state, includeCreditAccountAndCashbackInfo) => {
37
37
  const cardsInOrder = (0, orderBy_1.default)(chargeCardsWithUserFiltered, (person) => getCardsBySortKey(person, sortKey), sortOrder);
38
38
  const userListSelectorView = (0, userListViewSelector_1.getUserList)(userState, userRoleState, userListViewState, 'cardHolderCandidate');
39
39
  const userList = userListSelectorView.users;
40
- const fetchState = includeCreditAccountAndCashbackInfo === true
41
- ? (0, reduceFetchState_1.reduceFetchState)([
42
- chargeCardListState,
43
- chargeCardListState.creditAccount,
44
- chargeCardConfigState,
45
- cashbackDetailState,
46
- ]).fetchState
47
- : (0, reduceFetchState_1.reduceFetchState)([chargeCardListState, chargeCardConfigState])
48
- .fetchState;
40
+ const requiredFetchStates = [
41
+ chargeCardListState,
42
+ chargeCardConfigState,
43
+ ];
44
+ if (isDebitCardEnabled) {
45
+ requiredFetchStates.push(chargeCardListState.debitCardSummaries);
46
+ }
47
+ if (includeCreditAccountAndCashbackInfo) {
48
+ if (isCreditCardEnabled) {
49
+ requiredFetchStates.push(chargeCardListState.creditAccount);
50
+ }
51
+ requiredFetchStates.push(cashbackDetailState);
52
+ }
53
+ const fetchState = (0, reduceFetchState_1.reduceFetchState)(requiredFetchStates).fetchState;
49
54
  const issueCardPageFetchState = (0, reduceFetchState_1.reduceFetchState)([
50
55
  chargeCardConfigState,
51
56
  userListSelectorView,
@@ -55,6 +60,9 @@ const getChargeCardListView = (state, includeCreditAccountAndCashbackInfo) => {
55
60
  classIds: classIds,
56
61
  reportId: 'class_list',
57
62
  });
63
+ // used to determine which card (summary or promo) to show in the UI
64
+ const hasCreditCard = chargeCardsWithUser.some((card) => card.type.code.includes('credit'));
65
+ const hasDebitCard = chargeCardsWithUser.some((card) => card.type.code.includes('debit'));
58
66
  return {
59
67
  fetchState,
60
68
  error: chargeCardListState.error,
@@ -71,6 +79,9 @@ const getChargeCardListView = (state, includeCreditAccountAndCashbackInfo) => {
71
79
  version: '1.0',
72
80
  resendCardInvite: chargeCardListState.resendCardInvite,
73
81
  revokeCardInvite: chargeCardListState.revokeCardInvite,
82
+ debitCardSummary: chargeCardListState.debitCardSummaries,
83
+ hasCreditCard,
84
+ hasDebitCard,
74
85
  };
75
86
  };
76
87
  exports.getChargeCardListView = getChargeCardListView;
@@ -164,7 +175,7 @@ const getChargeCardsWithUser = (cards, { userState, userRoleState, classState, a
164
175
  return chargeCardsWithUser;
165
176
  };
166
177
  const getCardsBySortKey = (card, sortKey) => {
167
- var _a, _b, _c, _d;
178
+ var _a, _b;
168
179
  switch (sortKey) {
169
180
  case 'owner': {
170
181
  const firstName = (_a = card.cardHolderUser) === null || _a === void 0 ? void 0 : _a.firstName.toLowerCase();
@@ -179,8 +190,8 @@ const getCardsBySortKey = (card, sortKey) => {
179
190
  }
180
191
  case 'cardName':
181
192
  return card.cardName.toLowerCase();
182
- case 'department':
183
- return (_d = (_c = card.department) === null || _c === void 0 ? void 0 : _c.className.toLowerCase()) !== null && _d !== void 0 ? _d : '';
193
+ case 'cardType':
194
+ return card.type.code;
184
195
  case 'status':
185
196
  return card.status.code;
186
197
  case 'utilisation':
@@ -5,6 +5,6 @@ import { fetchClassList } from '../../../classList/classListReducer';
5
5
  import { fetchUserListByType } from '../../../userListView/userListViewReducer';
6
6
  import { fetchCashbackDetail } from '../cashbackDetail/cashbackDetailReducer';
7
7
  import { fetchChargeCardConfig } from '../chargeCardConfig/chargeCardConfigReducer';
8
- import { fetchChargeCardList, fetchChargeCardListPage, fetchCreditAccount } from './chargeCardListReducer';
9
- export type ActionType = ReturnType<typeof fetchChargeCardListPage> | ReturnType<typeof fetchCreditAccount> | ReturnType<typeof fetchChargeCardList> | ReturnType<typeof fetchChargeCardConfig> | ReturnType<typeof fetchUserListByType> | ReturnType<typeof fetchCashbackDetail> | ReturnType<typeof fetchClassList>;
8
+ import { fetchChargeCardList, fetchChargeCardListPage, fetchCreditAccount, fetchDebitCardSummary } from './chargeCardListReducer';
9
+ export type ActionType = ReturnType<typeof fetchChargeCardListPage> | ReturnType<typeof fetchCreditAccount> | ReturnType<typeof fetchChargeCardList> | ReturnType<typeof fetchChargeCardConfig> | ReturnType<typeof fetchUserListByType> | ReturnType<typeof fetchCashbackDetail> | ReturnType<typeof fetchClassList> | ReturnType<typeof fetchDebitCardSummary>;
10
10
  export declare const fetchChargeCardListPageEpic: (actions$: ActionsObservable<ActionType>, state$: StateObservable<RootState>) => Observable<ActionType>;
@@ -9,23 +9,30 @@ const cashbackDetailReducer_1 = require("../cashbackDetail/cashbackDetailReducer
9
9
  const chargeCardConfigReducer_1 = require("../chargeCardConfig/chargeCardConfigReducer");
10
10
  const chargeCardListReducer_1 = require("./chargeCardListReducer");
11
11
  const fetchChargeCardListPageEpic = (actions$, state$) => actions$.pipe((0, operators_1.filter)(chargeCardListReducer_1.fetchChargeCardListPage.match), (0, operators_1.mergeMap)((action) => {
12
- const { doFetchCreditAccountsAndCashback, cacheOverride } = action.payload;
12
+ const { doFetchCreditAccountsAndCashback, isDebitCardEnabled, isCreditCardEnabled, cacheOverride, } = action.payload;
13
13
  const chargeCardListPageAction = [];
14
14
  const state = state$.value;
15
15
  const cashbackDetailState = state.cashbackDetailState;
16
16
  if (cacheOverride === true) {
17
17
  if (doFetchCreditAccountsAndCashback === true) {
18
- chargeCardListPageAction.push((0, chargeCardListReducer_1.fetchCreditAccount)(), (0, cashbackDetailReducer_1.fetchCashbackDetail)());
18
+ if (isCreditCardEnabled) {
19
+ chargeCardListPageAction.push((0, chargeCardListReducer_1.fetchCreditAccount)());
20
+ }
21
+ chargeCardListPageAction.push((0, cashbackDetailReducer_1.fetchCashbackDetail)());
19
22
  }
20
23
  chargeCardListPageAction.push((0, chargeCardListReducer_1.fetchChargeCardList)());
21
24
  chargeCardListPageAction.push((0, chargeCardConfigReducer_1.fetchChargeCardConfig)());
22
25
  chargeCardListPageAction.push((0, userListViewReducer_1.fetchUserListByType)('cardHolderCandidate', true));
23
26
  chargeCardListPageAction.push((0, userListViewReducer_1.fetchUserListByType)('cardAdmin', true));
24
27
  chargeCardListPageAction.push((0, classListReducer_1.fetchClassList)());
28
+ if (isDebitCardEnabled) {
29
+ chargeCardListPageAction.push((0, chargeCardListReducer_1.fetchDebitCardSummary)());
30
+ }
25
31
  }
26
32
  else {
27
33
  const chargeCardList = state.chargeCardListState;
28
34
  if (doFetchCreditAccountsAndCashback === true &&
35
+ isCreditCardEnabled &&
29
36
  chargeCardList.creditAccount.fetchState !== 'Completed' &&
30
37
  chargeCardList.creditAccount.fetchState !== 'In-Progress') {
31
38
  chargeCardListPageAction.push((0, chargeCardListReducer_1.fetchCreditAccount)());
@@ -58,6 +65,13 @@ const fetchChargeCardListPageEpic = (actions$, state$) => actions$.pipe((0, oper
58
65
  state.classListState.fetchState !== 'In-Progress') {
59
66
  chargeCardListPageAction.push((0, classListReducer_1.fetchClassList)());
60
67
  }
68
+ if (isDebitCardEnabled &&
69
+ state.chargeCardListState.debitCardSummaries.fetchState !==
70
+ 'In-Progress' &&
71
+ state.chargeCardListState.debitCardSummaries.fetchState !==
72
+ 'Completed') {
73
+ chargeCardListPageAction.push((0, chargeCardListReducer_1.fetchDebitCardSummary)());
74
+ }
61
75
  }
62
76
  return (0, rxjs_1.concat)((0, rxjs_1.from)(chargeCardListPageAction));
63
77
  }));
@@ -0,0 +1,7 @@
1
+ import { ActionsObservable, StateObservable } from 'redux-observable';
2
+ import { Observable } from 'rxjs';
3
+ import { RootState } from '../../../../reducer';
4
+ import { ZeniAPI } from '../../../../zeniAPI';
5
+ import { fetchDebitCardSummary, updateDebitCardSummary, updateDebitCardSummaryFailure } from './chargeCardListReducer';
6
+ export type ActionType = ReturnType<typeof fetchDebitCardSummary> | ReturnType<typeof updateDebitCardSummary> | ReturnType<typeof updateDebitCardSummaryFailure>;
7
+ export declare const fetchDebitCardSummaryEpic: (actions$: ActionsObservable<ActionType>, _state$: StateObservable<RootState>, zeniAPI: ZeniAPI) => Observable<ActionType>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchDebitCardSummaryEpic = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const operators_1 = require("rxjs/operators");
6
+ const responsePayload_1 = require("../../../../responsePayload");
7
+ const chargeCardListReducer_1 = require("./chargeCardListReducer");
8
+ const fetchDebitCardSummaryEpic = (actions$, _state$, zeniAPI) => actions$.pipe((0, operators_1.filter)(chargeCardListReducer_1.fetchDebitCardSummary.match), (0, operators_1.switchMap)(() => {
9
+ return zeniAPI
10
+ .getJSON(`${zeniAPI.apiEndPoints.cardMicroServiceBaseUrl}/1.0/cards/summaries?query={"card_types": ["debit"]}`)
11
+ .pipe((0, operators_1.mergeMap)((response) => {
12
+ if ((0, responsePayload_1.isSuccessStatus)(response) && response.data != null) {
13
+ return (0, rxjs_1.of)((0, chargeCardListReducer_1.updateDebitCardSummary)(response.data.debit_card_summaries));
14
+ }
15
+ else {
16
+ return (0, rxjs_1.of)((0, chargeCardListReducer_1.updateDebitCardSummaryFailure)(response.status));
17
+ }
18
+ }), (0, operators_1.catchError)((error) => {
19
+ return (0, rxjs_1.of)((0, chargeCardListReducer_1.updateDebitCardSummaryFailure)((0, responsePayload_1.createZeniAPIStatus)('Unexpected Error', 'Fetch Debit Card Summary REST API call errored out' +
20
+ JSON.stringify(error))));
21
+ }));
22
+ }));
23
+ exports.fetchDebitCardSummaryEpic = fetchDebitCardSummaryEpic;
@@ -5,9 +5,10 @@ export declare const fetchChargeCardSetupView: import("@reduxjs/toolkit").Action
5
5
  companyId: string;
6
6
  cacheOverride: any;
7
7
  refreshViewInBackground: any;
8
- }, "chargeCardSetupView/fetchChargeCardSetupView", never, never>, fetchChargeCardSetupViewSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardSetupView/fetchChargeCardSetupViewSuccess">, fetchChargeCardSetupViewFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "chargeCardSetupView/fetchChargeCardSetupViewFailure", never, never>, acceptChargeCardTerms: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, enableChargeCard: boolean], {
8
+ }, "chargeCardSetupView/fetchChargeCardSetupView", never, never>, fetchChargeCardSetupViewSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardSetupView/fetchChargeCardSetupViewSuccess">, fetchChargeCardSetupViewFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "chargeCardSetupView/fetchChargeCardSetupViewFailure", never, never>, acceptChargeCardTerms: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[companyId: string, enableChargeCard: boolean, chargeCardSetupViewType: "charge_cards" | "debit_cards" | "charge_cards__debit_cards"], {
9
9
  companyId: string;
10
10
  enableChargeCard: boolean;
11
+ chargeCardSetupViewType: "charge_cards" | "debit_cards" | "charge_cards__debit_cards";
11
12
  }, "chargeCardSetupView/acceptChargeCardTerms", never, never>, acceptChargeCardTermsSuccess: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardSetupView/acceptChargeCardTermsSuccess">, acceptChargeCardTermsFailure: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[error: ZeniAPIStatus<Record<string, unknown>>], ZeniAPIStatus<Record<string, unknown>>, "chargeCardSetupView/acceptChargeCardTermsFailure", never, never>, clearChargeCardSetupView: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chargeCardSetupView/clearChargeCardSetupView">;
12
13
  declare const _default: import("redux").Reducer<ChargeCardSetupViewState>;
13
14
  export default _default;
@@ -57,8 +57,10 @@ const chargeCardSetupView = (0, toolkit_1.createSlice)({
57
57
  },
58
58
  });
59
59
  },
60
- prepare(companyId, enableChargeCard) {
61
- return { payload: { companyId, enableChargeCard } };
60
+ prepare(companyId, enableChargeCard, chargeCardSetupViewType) {
61
+ return {
62
+ payload: { companyId, enableChargeCard, chargeCardSetupViewType },
63
+ };
62
64
  },
63
65
  },
64
66
  acceptChargeCardTermsSuccess(draft) {
@@ -1,10 +1,11 @@
1
1
  import { FetchStateAndError, ID } from '../../../../commonStateTypes/common';
2
2
  import { SelectorView } from '../../../../commonStateTypes/viewAndReport/viewAndReport';
3
- import { CompanyChargeCardInfo, CompanyLocaleInfo } from '../../../../entity/company/companyStateTypes';
3
+ import { CompanyChargeCardInfo, CompanyDebitCardInfo, CompanyLocaleInfo } from '../../../../entity/company/companyStateTypes';
4
4
  import { RootState } from '../../../../reducer';
5
5
  import { BusinessVerificationDetails, CompanyOfficersDetails, SetupView } from '../../commonSetup/setupViewSelector';
6
6
  export interface ChargeCardSetupView extends SetupView, SelectorView {
7
7
  companyChargeCardInfo?: CompanyChargeCardInfo;
8
+ companyDebitCardInfo?: CompanyDebitCardInfo;
8
9
  companyLocaleInfo?: CompanyLocaleInfo;
9
10
  chargeCardTermsDetails?: {
10
11
  fetchStatus: FetchStateAndError;
@@ -9,6 +9,7 @@ function getChargeCardSetupViewDetails(state, companyId) {
9
9
  const chargeCardSetupViewDetails = (0, setupViewSelector_1.getCommonSetupViewDetails)(state, companyId, 'charge_cards', 'charge_card_setup');
10
10
  const companyView = (0, getCompanyView_1.getCompanyView)(state, companyId, []);
11
11
  const companyChargeCardInfo = companyView === null || companyView === void 0 ? void 0 : companyView.company.company.companyChargeCardInfo;
12
+ const companyDebitCardInfo = companyView === null || companyView === void 0 ? void 0 : companyView.company.company.companyDebitCardInfo;
12
13
  const companyLocaleInfo = companyView === null || companyView === void 0 ? void 0 : companyView.company.company.companyLocaleInfo;
13
14
  const { chargeCardSetupViewState, setupViewState } = state;
14
15
  const { chargeCardTermsDetails, isRefreshingViewInBackground } = chargeCardSetupViewState;
@@ -18,6 +19,7 @@ function getChargeCardSetupViewDetails(state, companyId) {
18
19
  const selectedCompanyOfficer = (0, helpers_1.getSelectedCompanyOfficer)(businessVerificationDetails);
19
20
  return Object.assign(Object.assign({}, chargeCardSetupViewDetails), { chargeCardTermsDetails,
20
21
  companyChargeCardInfo,
22
+ companyDebitCardInfo,
21
23
  companyLocaleInfo, version: 1, fetchState,
22
24
  error,
23
25
  updateStatus,