mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-29 00:49:42 +08:00
refactor(connector): make the original_authorized_amount optional for MITs with connector_mandate_details (#5311)
This commit is contained in:
@ -589,12 +589,30 @@ impl
|
||||
Some(payments::MandateReferenceId::ConnectorMandateId(_)) => {
|
||||
let original_amount = item
|
||||
.router_data
|
||||
.get_recurring_mandate_payment_data()?
|
||||
.get_original_payment_amount()?;
|
||||
.recurring_mandate_payment_data
|
||||
.as_ref()
|
||||
.and_then(|recurring_mandate_payment_data| {
|
||||
recurring_mandate_payment_data.original_payment_authorized_amount
|
||||
});
|
||||
|
||||
let original_currency = item
|
||||
.router_data
|
||||
.get_recurring_mandate_payment_data()?
|
||||
.get_original_payment_currency()?;
|
||||
.recurring_mandate_payment_data
|
||||
.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,
|
||||
@ -602,11 +620,7 @@ impl
|
||||
initiator: None,
|
||||
merchant_intitiated_transaction: Some(MerchantInitiatedTransaction {
|
||||
reason: None,
|
||||
original_authorized_amount: Some(utils::get_amount_as_string(
|
||||
&api::CurrencyUnit::Base,
|
||||
original_amount,
|
||||
original_currency,
|
||||
)?),
|
||||
original_authorized_amount,
|
||||
previous_transaction_id: None,
|
||||
}),
|
||||
}),
|
||||
@ -618,7 +632,8 @@ impl
|
||||
.map(|network| network.to_lowercase())
|
||||
.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(
|
||||
item.router_data
|
||||
.get_recurring_mandate_payment_data()?
|
||||
@ -653,12 +668,11 @@ impl
|
||||
(original_amount, original_currency)
|
||||
}
|
||||
};
|
||||
|
||||
let original_authorized_amount = match (original_amount, original_currency) {
|
||||
(Some(original_amount), Some(original_currency)) => Some(
|
||||
let original_authorized_amount = match original_amount.zip(original_currency) {
|
||||
Some((original_amount, original_currency)) => Some(
|
||||
utils::to_currency_base_unit(original_amount, original_currency)?,
|
||||
),
|
||||
_ => None,
|
||||
None => None,
|
||||
};
|
||||
commerce_indicator = "recurring".to_string();
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user