refactor(router): include payment method type in connector choice for session flow (#1036)

This commit is contained in:
ItsMeShashank
2023-05-08 14:45:28 +05:30
committed by GitHub
parent ab55d21013
commit 73b8988322
4 changed files with 27 additions and 10 deletions

View File

@ -1032,8 +1032,13 @@ where
let connector = if should_call_connector(operation, payment_data) {
Some(match connector_choice {
api::ConnectorChoice::SessionMultiple(connectors) => {
api::ConnectorCallType::Multiple(connectors)
api::ConnectorChoice::SessionMultiple(session_connectors) => {
api::ConnectorCallType::Multiple(
session_connectors
.into_iter()
.map(|c| c.connector)
.collect(),
)
}
api::ConnectorChoice::StraightThrough(straight_through) => connector_selection(

View File

@ -350,7 +350,10 @@ where
connector_and_payment_method_type.0.as_str(),
api::GetToken::from(connector_and_payment_method_type.1),
)?;
connectors_data.push(connector_details);
connectors_data.push(api::SessionConnectorData {
payment_method_type,
connector: connector_details,
});
}
}
}
@ -364,7 +367,10 @@ where
connector_and_payment_method_type.0.as_str(),
api::GetToken::from(connector_and_payment_method_type.1),
)?;
connectors_data.push(connector_details);
connectors_data.push(api::SessionConnectorData {
payment_method_type: connector_and_payment_method_type.1,
connector: connector_details,
});
}
connectors_data
};

View File

@ -150,8 +150,14 @@ pub struct ConnectorData {
pub get_token: GetToken,
}
#[derive(Clone)]
pub struct SessionConnectorData {
pub payment_method_type: api_enums::PaymentMethodType,
pub connector: ConnectorData,
}
pub enum ConnectorChoice {
SessionMultiple(Vec<ConnectorData>),
SessionMultiple(Vec<SessionConnectorData>),
StraightThrough(serde_json::Value),
Decide,
}