refactor(connector): make the original_authorized_amount optional for MITs with connector_mandate_details (#5311)

This commit is contained in:
Shankar Singh C
2024-07-19 14:01:11 +05:30
committed by GitHub
parent eb01680284
commit a8e2f3ebc9

View File

@ -589,12 +589,30 @@ impl
Some(payments::MandateReferenceId::ConnectorMandateId(_)) => { Some(payments::MandateReferenceId::ConnectorMandateId(_)) => {
let original_amount = item let original_amount = item
.router_data .router_data
.get_recurring_mandate_payment_data()? .recurring_mandate_payment_data
.get_original_payment_amount()?; .as_ref()
.and_then(|recurring_mandate_payment_data| {
recurring_mandate_payment_data.original_payment_authorized_amount
});
let original_currency = item let original_currency = item
.router_data .router_data
.get_recurring_mandate_payment_data()? .recurring_mandate_payment_data
.get_original_payment_currency()?; .as_ref()
.and_then(|recurring_mandate_payment_data| {
recurring_mandate_payment_data.original_payment_authorized_currency
});
let original_authorized_amount = match original_amount.zip(original_currency) {
Some((original_amount, original_currency)) => {
Some(utils::get_amount_as_string(
&api::CurrencyUnit::Base,
original_amount,
original_currency,
)?)
}
None => None,
};
( (
None, None,
None, None,
@ -602,11 +620,7 @@ impl
initiator: None, initiator: None,
merchant_intitiated_transaction: Some(MerchantInitiatedTransaction { merchant_intitiated_transaction: Some(MerchantInitiatedTransaction {
reason: None, reason: None,
original_authorized_amount: Some(utils::get_amount_as_string( original_authorized_amount,
&api::CurrencyUnit::Base,
original_amount,
original_currency,
)?),
previous_transaction_id: None, previous_transaction_id: None,
}), }),
}), }),
@ -618,7 +632,8 @@ impl
.map(|network| network.to_lowercase()) .map(|network| network.to_lowercase())
.as_deref() .as_deref()
{ {
Some("discover") => { //This is to make original_authorized_amount mandatory for discover card networks in NetworkMandateId flow
Some("004") => {
let original_amount = Some( let original_amount = Some(
item.router_data item.router_data
.get_recurring_mandate_payment_data()? .get_recurring_mandate_payment_data()?
@ -653,12 +668,11 @@ impl
(original_amount, original_currency) (original_amount, original_currency)
} }
}; };
let original_authorized_amount = match original_amount.zip(original_currency) {
let original_authorized_amount = match (original_amount, original_currency) { Some((original_amount, original_currency)) => Some(
(Some(original_amount), Some(original_currency)) => Some(
utils::to_currency_base_unit(original_amount, original_currency)?, utils::to_currency_base_unit(original_amount, original_currency)?,
), ),
_ => None, None => None,
}; };
commerce_indicator = "recurring".to_string(); commerce_indicator = "recurring".to_string();
( (