mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-11-01 02:57:02 +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
	 Narayan Bhat
					Narayan Bhat