refactor(Tokenization): remove ConnectorCallType from tokenization call (#862)

This commit is contained in:
Sangamesh Kulkarni
2023-04-13 14:14:42 +05:30
committed by GitHub
parent acab7671b0
commit 0d047e08f9
2 changed files with 58 additions and 92 deletions

View File

@ -1302,7 +1302,7 @@ pub struct GpayMetaData {
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct GpaySessionTokenData {
#[serde(rename = "gpay")]
#[serde(rename = "google_pay")]
pub data: GpayMetaData,
}

View File

@ -101,13 +101,8 @@ where
)
.await?;
let (payment_data, tokenization_action) = get_connector_tokenization_action(
state,
&operation,
connector.as_ref(),
payment_data,
&validate_result,
)
let (payment_data, tokenization_action) =
get_connector_tokenization_action(state, &operation, payment_data, &validate_result)
.await?;
let (operation, mut payment_data) = operation
@ -584,15 +579,6 @@ where
Ok(payment_data)
}
fn get_connector_from_connector_type(
connector_details: Option<&api::ConnectorCallType>,
) -> Option<String> {
connector_details.and_then(|connector_call_type| match connector_call_type {
api::ConnectorCallType::Single(data) => Some(data.connector_name.to_string()),
_ => None,
})
}
fn is_payment_method_tokenization_enabled_for_connector(
state: &AppState,
connector_name: &str,
@ -656,17 +642,16 @@ pub enum TokenizationAction {
pub async fn get_connector_tokenization_action<F, Req>(
state: &AppState,
operation: &BoxedOperation<'_, F, Req>,
connector_details: Option<&api::ConnectorCallType>,
mut payment_data: PaymentData<F>,
validate_result: &operations::ValidateResult<'_>,
) -> RouterResult<(PaymentData<F>, TokenizationAction)>
where
F: Send + Clone,
{
let payment_data_and_tokenization_action =
match get_connector_from_connector_type(connector_details) {
Some(connector) => {
if is_operation_confirm(&operation) {
let connector = payment_data.payment_attempt.connector.to_owned();
let payment_data_and_tokenization_action = match connector {
Some(connector) if is_operation_confirm(&operation) => {
let payment_method = &payment_data
.payment_attempt
.payment_method
@ -692,28 +677,18 @@ where
TokenizationAction::TokenizeInRouter => {
let (_operation, payment_method_data) = operation
.to_domain()?
.make_pm_data(
state,
&mut payment_data,
validate_result.storage_scheme,
)
.make_pm_data(state, &mut payment_data, validate_result.storage_scheme)
.await?;
payment_data.payment_method_data = payment_method_data;
TokenizationAction::SkipConnectorTokenization
}
TokenizationAction::TokenizeInConnector => {
TokenizationAction::TokenizeInConnector
}
TokenizationAction::TokenizeInConnector => TokenizationAction::TokenizeInConnector,
TokenizationAction::TokenizeInConnectorAndRouter => {
let (_operation, payment_method_data) = operation
.to_domain()?
.make_pm_data(
state,
&mut payment_data,
validate_result.storage_scheme,
)
.make_pm_data(state, &mut payment_data, validate_result.storage_scheme)
.await?;
payment_data.payment_method_data = payment_method_data;
@ -728,17 +703,8 @@ where
}
};
(payment_data, connector_tokenization_action)
} else {
let (_operation, payment_method_data) = operation
.to_domain()?
.make_pm_data(state, &mut payment_data, validate_result.storage_scheme)
.await?;
payment_data.payment_method_data = payment_method_data;
(payment_data, TokenizationAction::SkipConnectorTokenization)
}
}
None => {
_ => {
let (_operation, payment_method_data) = operation
.to_domain()?
.make_pm_data(state, &mut payment_data, validate_result.storage_scheme)