Skip to content

Commit

Permalink
Merge pull request #11702 from Expensify/revert-10967-maria-refactor-…
Browse files Browse the repository at this point in the history
…verify-identity-for-bank-account

[No QA] Revert "[Refactor] Use new API Command: VerifyIdentityForBankAccount"

(cherry picked from commit 145e220)
  • Loading branch information
yuwenmemon authored and OSBotify committed Oct 10, 2022
1 parent 034700d commit ade3e45
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 109 deletions.
14 changes: 0 additions & 14 deletions src/libs/actions/BankAccounts.js
Original file line number Diff line number Diff line change
Expand Up @@ -291,19 +291,6 @@ function connectBankAccountManually(bankAccountID, accountNumber, routingNumber,
}, getVBBADataForOnyx());
}

/**
* Verify the user's identity via Onfido
*
* @param {Number} bankAccountID
* @param {Object} onfidoData
*/
function verifyIdentityForBankAccount(bankAccountID, onfidoData) {
API.write('VerifyIdentityForBankAccount', {
bankAccountID,
onfidoData: JSON.stringify(onfidoData),
}, getVBBADataForOnyx());
}

export {
addPersonalBankAccount,
connectBankAccountManually,
Expand All @@ -313,7 +300,6 @@ export {
clearOnfidoToken,
updatePersonalInformationForBankAccount,
validateBankAccount,
verifyIdentityForBankAccount,
updateCompanyInformationForBankAccount,
connectBankAccountWithPlaid,
updatePlaidData,
Expand Down
82 changes: 0 additions & 82 deletions src/pages/ReimbursementAccount/RequestorOnfidoStep.js

This file was deleted.

51 changes: 38 additions & 13 deletions src/pages/ReimbursementAccount/RequestorStep.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from 'react';
import lodashGet from 'lodash/get';
import {View} from 'react-native';
import {ScrollView, View} from 'react-native';
import {withOnyx} from 'react-native-onyx';
import _ from 'underscore';
import moment from 'moment';
Expand All @@ -16,13 +16,14 @@ import Text from '../../components/Text';
import * as BankAccounts from '../../libs/actions/BankAccounts';
import IdentityForm from './IdentityForm';
import * as ValidationUtils from '../../libs/ValidationUtils';
import Onfido from '../../components/Onfido';
import compose from '../../libs/compose';
import ONYXKEYS from '../../ONYXKEYS';
import * as ReimbursementAccountUtils from '../../libs/ReimbursementAccountUtils';
import Growl from '../../libs/Growl';
import reimbursementAccountPropTypes from './reimbursementAccountPropTypes';
import ReimbursementAccountForm from './ReimbursementAccountForm';
import * as Link from '../../libs/actions/Link';
import RequestorOnfidoStep from './RequestorOnfidoStep';

const propTypes = {
/** Bank account currently in setup */
Expand All @@ -41,7 +42,6 @@ class RequestorStep extends React.Component {

this.submit = this.submit.bind(this);
this.clearErrorsAndSetValues = this.clearErrorsAndSetValues.bind(this);
this.setOnfidoAsComplete = this.setOnfidoAsComplete.bind(this);

this.state = {
firstName: ReimbursementAccountUtils.getDefaultStateForField(props, 'firstName'),
Expand All @@ -53,6 +53,7 @@ class RequestorStep extends React.Component {
dob: ReimbursementAccountUtils.getDefaultStateForField(props, 'dob'),
ssnLast4: ReimbursementAccountUtils.getDefaultStateForField(props, 'ssnLast4'),
isControllingOfficer: ReimbursementAccountUtils.getDefaultStateForField(props, 'isControllingOfficer', false),
onfidoData: lodashGet(props, ['reimbursementAccount', 'achData', 'onfidoData'], ''),
isOnfidoSetupComplete: lodashGet(props, ['achData', 'isOnfidoSetupComplete'], false),
};

Expand All @@ -73,13 +74,6 @@ class RequestorStep extends React.Component {
this.getErrors = () => ReimbursementAccountUtils.getErrors(this.props);
}

/**
* Update state to indicate that the user has completed the Onfido verification process
*/
setOnfidoAsComplete() {
this.setState({isOnfidoSetupComplete: true});
}

/**
* Clear the errors associated to keys in values if found and store the new values in the state.
*
Expand Down Expand Up @@ -153,6 +147,20 @@ class RequestorStep extends React.Component {
BankAccounts.updatePersonalInformationForBankAccount(payload);
}

submitOnfidoVerification() {
if (!this.validate()) {
return;
}

const payload = {
bankAccountID: ReimbursementAccountUtils.getDefaultStateForField(this.props, 'bankAccountID', 0),
...this.state,
dob: moment(this.state.dob).format(CONST.DATE.MOMENT_FORMAT_STRING),
};

BankAccounts.setupWithdrawalAccount(payload);
}

render() {
const achData = this.props.reimbursementAccount.achData;
const shouldShowOnfido = achData.useOnfido && this.props.onfidoToken && !this.state.isOnfidoSetupComplete;
Expand All @@ -175,9 +183,26 @@ class RequestorStep extends React.Component {
onCloseButtonPress={Navigation.dismissModal}
/>
{shouldShowOnfido ? (
<RequestorOnfidoStep
onComplete={this.setOnfidoAsComplete}
/>
<ScrollView contentContainerStyle={styles.flex1}>
<Onfido
sdkToken={this.props.onfidoToken}
onUserExit={() => {
// We're taking the user back to the company step. They will need to come back to the requestor step to make the Onfido flow appear again.
BankAccounts.goToWithdrawalAccountSetupStep(CONST.BANK_ACCOUNT.STEP.COMPANY);
}}
onError={() => {
// In case of any unexpected error we log it to the server, show a growl, and return the user back to the company step so they can try again.
Growl.error(this.props.translate('onfidoStep.genericError'), 10000);
BankAccounts.goToWithdrawalAccountSetupStep(CONST.BANK_ACCOUNT.STEP.COMPANY);
}}
onSuccess={(onfidoData) => {
this.setState({
onfidoData,
isOnfidoSetupComplete: true,
}, this.submitOnfidoVerification);
}}
/>
</ScrollView>
) : (
<ReimbursementAccountForm
onSubmit={this.submit}
Expand Down

0 comments on commit ade3e45

Please sign in to comment.