From 7e1f2ddbd3cc820e850c5bbd8ae5580d857a27f5 Mon Sep 17 00:00:00 2001 From: Jack Nam Date: Tue, 28 Jun 2022 12:42:25 -0700 Subject: [PATCH 1/6] add new method and replace old usages of DeleteDebitCard --- src/libs/actions/PaymentMethods.js | 46 +++++++++---------- .../Payments/PaymentsPage/BasePaymentsPage.js | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/libs/actions/PaymentMethods.js b/src/libs/actions/PaymentMethods.js index 987095e63a7..815e8f09ce1 100644 --- a/src/libs/actions/PaymentMethods.js +++ b/src/libs/actions/PaymentMethods.js @@ -4,6 +4,7 @@ import lodashGet from 'lodash/get'; import Onyx from 'react-native-onyx'; import ONYXKEYS from '../../ONYXKEYS'; import * as DeprecatedAPI from '../deprecatedAPI'; +import * as API from '../API'; import CONST from '../../CONST'; import Growl from '../Growl'; import * as Localize from '../Localize'; @@ -13,28 +14,6 @@ import ROUTES from '../../ROUTES'; import NameValuePair from './NameValuePair'; import * as store from './ReimbursementAccount/store'; -/** - * Deletes a debit card - * - * @param {Number} fundID - * - * @returns {Promise} - */ -function deleteDebitCard(fundID) { - return DeprecatedAPI.DeleteFund({fundID}) - .then((response) => { - if (response.jsonCode === 200) { - Growl.show(Localize.translateLocal('paymentsPage.deleteDebitCardSuccess'), CONST.GROWL.SUCCESS, 3000); - Onyx.merge(ONYXKEYS.CARD_LIST, {[fundID]: null}); - } else { - Growl.show(Localize.translateLocal('common.genericErrorMessage'), CONST.GROWL.ERROR, 3000); - } - }) - .catch(() => { - Growl.show(Localize.translateLocal('common.genericErrorMessage'), CONST.GROWL.ERROR, 3000); - }); -} - function deletePayPalMe() { NameValuePair.set(CONST.NVP.PAYPAL_ME_ADDRESS, ''); Onyx.set(ONYXKEYS.NVP_PAYPAL_ME_ADDRESS, null); @@ -273,9 +252,30 @@ function dismissWalletConfirmModal() { Onyx.merge(ONYXKEYS.WALLET_TRANSFER, {shouldShowConfirmModal: false}); } +function deletePaymentCard(fundID) { + API.write('DeletePaymentCard', { + fundID, + }, { + optimisticData: [ + { + onyxMethod: 'merge', + key: `${ONYXKEYS.CARD_LIST}`, + value: {[fundID]: {isLoading: true}}, + }, + ], + failureData: [ + { + onyxMethod: 'merge', + key: `${ONYXKEYS.CARD_LIST}`, + value: {[fundID]: {isLoading: false}}, + }, + ], + }); +} + export { - deleteDebitCard, deletePayPalMe, + deletePaymentCard, getPaymentMethods, setWalletLinkedAccount, addBillingCard, diff --git a/src/pages/settings/Payments/PaymentsPage/BasePaymentsPage.js b/src/pages/settings/Payments/PaymentsPage/BasePaymentsPage.js index e0b6b61d466..64aba8c2ddc 100644 --- a/src/pages/settings/Payments/PaymentsPage/BasePaymentsPage.js +++ b/src/pages/settings/Payments/PaymentsPage/BasePaymentsPage.js @@ -235,7 +235,7 @@ class BasePaymentsPage extends React.Component { } else if (this.state.selectedPaymentMethodType === CONST.PAYMENT_METHODS.BANK_ACCOUNT) { BankAccounts.deleteBankAccount(this.state.selectedPaymentMethod.bankAccountID); } else if (this.state.selectedPaymentMethodType === CONST.PAYMENT_METHODS.DEBIT_CARD) { - PaymentMethods.deleteDebitCard(this.state.selectedPaymentMethod.fundID); + PaymentMethods.deletePaymentCard(this.state.selectedPaymentMethod.fundID); } } From 16142a1c5fe758dcd72dacc0ba936b477798f539 Mon Sep 17 00:00:00 2001 From: Jack Nam Date: Tue, 28 Jun 2022 12:43:49 -0700 Subject: [PATCH 2/6] remove DeleteFund from deprecated api --- src/libs/deprecatedAPI.js | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/libs/deprecatedAPI.js b/src/libs/deprecatedAPI.js index 67333741f0a..22179df8421 100644 --- a/src/libs/deprecatedAPI.js +++ b/src/libs/deprecatedAPI.js @@ -95,17 +95,6 @@ function CreateLogin(parameters) { return Network.post(commandName, parameters); } -/** - * @param {Object} parameters - * @param {Number} parameters.fundID - * @returns {Promise} - */ -function DeleteFund(parameters) { - const commandName = 'DeleteFund'; - requireParameters(['fundID'], parameters, commandName); - return Network.post(commandName, parameters); -} - /** * @param {Object} parameters * @param {String} parameters.partnerUserID @@ -929,7 +918,6 @@ export { CreateLogin, CreatePolicyRoom, RenameReport, - DeleteFund, DeleteLogin, DeleteBankAccount, Get, From e6fcfb678a0fe9f9ffc1acc69f019a8907a009da Mon Sep 17 00:00:00 2001 From: Jack Nam Date: Tue, 9 Aug 2022 15:38:59 -0700 Subject: [PATCH 3/6] update to use isPendingDelete --- src/libs/actions/PaymentMethods.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/actions/PaymentMethods.js b/src/libs/actions/PaymentMethods.js index 0627a0d7367..378bbbbeb6b 100644 --- a/src/libs/actions/PaymentMethods.js +++ b/src/libs/actions/PaymentMethods.js @@ -297,14 +297,14 @@ function deletePaymentCard(fundID) { { onyxMethod: 'merge', key: `${ONYXKEYS.CARD_LIST}`, - value: {[fundID]: {isLoading: true}}, + value: {[fundID]: {isPendingDelete: true}}, }, ], failureData: [ { onyxMethod: 'merge', key: `${ONYXKEYS.CARD_LIST}`, - value: {[fundID]: {isLoading: false}}, + value: {[fundID]: {isPendingDelete: false}}, }, ], }); From dec6f652135a449bad9edc0bccd86c065cae2780 Mon Sep 17 00:00:00 2001 From: Jack Nam Date: Wed, 10 Aug 2022 12:03:35 -0700 Subject: [PATCH 4/6] update pendingAction to false --- src/libs/actions/PaymentMethods.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libs/actions/PaymentMethods.js b/src/libs/actions/PaymentMethods.js index e2fefef005a..21fc78d1aad 100644 --- a/src/libs/actions/PaymentMethods.js +++ b/src/libs/actions/PaymentMethods.js @@ -295,16 +295,16 @@ function deletePaymentCard(fundID) { }, { optimisticData: [ { - onyxMethod: 'merge', + onyxMethod: CONST.ONYX.METHOD.MERGE, key: `${ONYXKEYS.CARD_LIST}`, - value: {[fundID]: {isPendingDelete: true}}, + value: {[fundID]: {pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE}}, }, ], failureData: [ { - onyxMethod: 'merge', + onyxMethod: CONST.ONYX.METHOD.MERGE, key: `${ONYXKEYS.CARD_LIST}`, - value: {[fundID]: {isPendingDelete: false}}, + value: {[fundID]: {pendingAction: false}}, }, ], }); From a686bdf2ef3e6bf4b8762432752c63ad47e461d1 Mon Sep 17 00:00:00 2001 From: Jack Nam Date: Wed, 10 Aug 2022 12:13:12 -0700 Subject: [PATCH 5/6] remove failure data since we don't want to remove the pendingAction --- src/libs/actions/PaymentMethods.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/libs/actions/PaymentMethods.js b/src/libs/actions/PaymentMethods.js index 21fc78d1aad..3b7a7615d01 100644 --- a/src/libs/actions/PaymentMethods.js +++ b/src/libs/actions/PaymentMethods.js @@ -300,13 +300,6 @@ function deletePaymentCard(fundID) { value: {[fundID]: {pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE}}, }, ], - failureData: [ - { - onyxMethod: CONST.ONYX.METHOD.MERGE, - key: `${ONYXKEYS.CARD_LIST}`, - value: {[fundID]: {pendingAction: false}}, - }, - ], }); } From 0cede96f8ac78cee5af65a1370a6427514e9a2ea Mon Sep 17 00:00:00 2001 From: Jack Nam Date: Wed, 10 Aug 2022 12:17:31 -0700 Subject: [PATCH 6/6] remove unused growl messages --- src/languages/en.js | 1 - src/languages/es.js | 1 - 2 files changed, 2 deletions(-) diff --git a/src/languages/en.js b/src/languages/en.js index cbafe074414..008c8100611 100755 --- a/src/languages/en.js +++ b/src/languages/en.js @@ -393,7 +393,6 @@ export default { deleteAccount: 'Delete Account', deleteConfirmation: 'Are you sure that you want to delete this account?', deleteBankAccountSuccess: 'Bank account successfully deleted', - deleteDebitCardSuccess: 'Debit Card successfully deleted', deletePayPalSuccess: 'PayPal.me successfully deleted', error: { notOwnerOfBankAccount: 'There was an error setting this bank account as your default payment method.', diff --git a/src/languages/es.js b/src/languages/es.js index fdcb6778c64..778127f8648 100644 --- a/src/languages/es.js +++ b/src/languages/es.js @@ -393,7 +393,6 @@ export default { deleteAccount: 'Eliminar cuenta', deleteConfirmation: '¿Estás seguro de que quieres eliminar esta cuenta?', deleteBankAccountSuccess: 'Cuenta bancaria eliminada correctamente', - deleteDebitCardSuccess: 'Tarjeta de débito eliminada correctamente', deletePayPalSuccess: 'PayPal.me eliminada correctamente', error: { notOwnerOfBankAccount: 'Ha ocurrido un error al establecer esta cuenta bancaria como tu método de pago predeterminado.',