mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 09:38:33 +08:00
bugfix(refunds): skip validate refunds for card (#672)
This commit is contained in:
@ -1,5 +1,5 @@
|
|||||||
use common_utils::ext_traits::StringExt;
|
use common_utils::ext_traits::StringExt;
|
||||||
use error_stack::{report, ResultExt};
|
use error_stack::{report, IntoReport, ResultExt};
|
||||||
use router_env::{instrument, tracing};
|
use router_env::{instrument, tracing};
|
||||||
use time::PrimitiveDateTime;
|
use time::PrimitiveDateTime;
|
||||||
|
|
||||||
@ -149,27 +149,38 @@ pub fn validate_for_valid_refunds(
|
|||||||
.parse_enum("connector")
|
.parse_enum("connector")
|
||||||
.change_context(errors::ApiErrorResponse::IncorrectConnectorNameGiven)?;
|
.change_context(errors::ApiErrorResponse::IncorrectConnectorNameGiven)?;
|
||||||
|
|
||||||
let payment_method_type = payment_attempt
|
let payment_method = payment_attempt
|
||||||
.payment_method_type
|
.payment_method
|
||||||
.clone()
|
.as_ref()
|
||||||
.get_required_value("payment_method_type")?;
|
.get_required_value("payment_method")?;
|
||||||
|
|
||||||
utils::when(
|
match payment_method {
|
||||||
matches!(
|
storage_models::enums::PaymentMethod::PayLater
|
||||||
(connector, payment_method_type),
|
| storage_models::enums::PaymentMethod::Wallet => {
|
||||||
(
|
let payment_method_type = payment_attempt
|
||||||
api_models::enums::Connector::Braintree,
|
.payment_method_type
|
||||||
storage_models::enums::PaymentMethodType::Paypal
|
.clone()
|
||||||
) | (
|
.get_required_value("payment_method_type")?;
|
||||||
api_models::enums::Connector::Klarna,
|
|
||||||
storage_models::enums::PaymentMethodType::Klarna
|
utils::when(
|
||||||
|
matches!(
|
||||||
|
(connector, payment_method_type),
|
||||||
|
(
|
||||||
|
api_models::enums::Connector::Braintree,
|
||||||
|
storage_models::enums::PaymentMethodType::Paypal,
|
||||||
|
) | (
|
||||||
|
api_models::enums::Connector::Klarna,
|
||||||
|
storage_models::enums::PaymentMethodType::Klarna
|
||||||
|
)
|
||||||
|
),
|
||||||
|
|| {
|
||||||
|
Err(errors::ApiErrorResponse::RefundNotPossible {
|
||||||
|
connector: connector.to_string(),
|
||||||
|
})
|
||||||
|
},
|
||||||
)
|
)
|
||||||
),
|
.into_report()
|
||||||
|| {
|
}
|
||||||
Err(errors::ApiErrorResponse::RefundNotPossible {
|
_ => Ok(()),
|
||||||
connector: connector.to_string(),
|
}
|
||||||
})
|
|
||||||
},
|
|
||||||
)?;
|
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user