mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-11-01 02:57:02 +08:00 
			
		
		
		
	fix(payments): all AdditionalCardInfo fields optional (#1840)
Co-authored-by: Sangamesh Kulkarni <59434228+Sangamesh26@users.noreply.github.com>
This commit is contained in:
		 Abhishek Marrivagu
					Abhishek Marrivagu
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							e047a11ded
						
					
				
				
					commit
					a1cb255765
				
			| @ -743,11 +743,11 @@ pub struct AdditionalCardInfo { | ||||
|     pub card_type: Option<String>, | ||||
|     pub card_issuing_country: Option<String>, | ||||
|     pub bank_code: Option<String>, | ||||
|     pub last4: String, | ||||
|     pub card_isin: String, | ||||
|     pub card_exp_month: Secret<String>, | ||||
|     pub card_exp_year: Secret<String>, | ||||
|     pub card_holder_name: Secret<String>, | ||||
|     pub last4: Option<String>, | ||||
|     pub card_isin: Option<String>, | ||||
|     pub card_exp_month: Option<Secret<String>>, | ||||
|     pub card_exp_year: Option<Secret<String>>, | ||||
|     pub card_holder_name: Option<Secret<String>>, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, Clone, Eq, PartialEq, serde::Deserialize, serde::Serialize)] | ||||
| @ -1165,15 +1165,15 @@ pub struct ApplepayPaymentMethod { | ||||
|  | ||||
| #[derive(Eq, PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] | ||||
| pub struct CardResponse { | ||||
|     pub last4: String, | ||||
|     pub last4: Option<String>, | ||||
|     pub card_type: Option<String>, | ||||
|     pub card_network: Option<api_enums::CardNetwork>, | ||||
|     pub card_issuer: Option<String>, | ||||
|     pub card_issuing_country: Option<String>, | ||||
|     pub card_isin: String, | ||||
|     pub card_exp_month: Secret<String>, | ||||
|     pub card_exp_year: Secret<String>, | ||||
|     pub card_holder_name: Secret<String>, | ||||
|     pub card_isin: Option<String>, | ||||
|     pub card_exp_month: Option<Secret<String>>, | ||||
|     pub card_exp_year: Option<Secret<String>>, | ||||
|     pub card_holder_name: Option<Secret<String>>, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, Clone, Eq, PartialEq, serde::Serialize, serde::Deserialize, ToSchema)] | ||||
|  | ||||
| @ -2612,8 +2612,8 @@ pub async fn get_additional_payment_data( | ||||
| ) -> api_models::payments::AdditionalPaymentData { | ||||
|     match pm_data { | ||||
|         api_models::payments::PaymentMethodData::Card(card_data) => { | ||||
|             let card_isin = card_data.card_number.clone().get_card_isin(); | ||||
|             let last4 = card_data.card_number.clone().get_last4(); | ||||
|             let card_isin = Some(card_data.card_number.clone().get_card_isin()); | ||||
|             let last4 = Some(card_data.card_number.clone().get_last4()); | ||||
|             if card_data.card_issuer.is_some() | ||||
|                 && card_data.card_network.is_some() | ||||
|                 && card_data.card_type.is_some() | ||||
| @ -2627,19 +2627,23 @@ pub async fn get_additional_payment_data( | ||||
|                         card_type: card_data.card_type.to_owned(), | ||||
|                         card_issuing_country: card_data.card_issuing_country.to_owned(), | ||||
|                         bank_code: card_data.bank_code.to_owned(), | ||||
|                         card_exp_month: card_data.card_exp_month.clone(), | ||||
|                         card_exp_year: card_data.card_exp_year.clone(), | ||||
|                         card_holder_name: card_data.card_holder_name.clone(), | ||||
|                         card_exp_month: Some(card_data.card_exp_month.clone()), | ||||
|                         card_exp_year: Some(card_data.card_exp_year.clone()), | ||||
|                         card_holder_name: Some(card_data.card_holder_name.clone()), | ||||
|                         last4: last4.clone(), | ||||
|                         card_isin: card_isin.clone(), | ||||
|                     }, | ||||
|                 )) | ||||
|             } else { | ||||
|                 let card_info = db | ||||
|                     .get_card_info(&card_isin.clone()) | ||||
|                 let card_info = card_isin | ||||
|                     .clone() | ||||
|                     .async_and_then(|card_isin| async move { | ||||
|                         db.get_card_info(&card_isin) | ||||
|                             .await | ||||
|                             .map_err(|error| services::logger::warn!(card_info_error=?error)) | ||||
|                             .ok() | ||||
|                     }) | ||||
|                     .await | ||||
|                     .flatten() | ||||
|                     .map(|card_info| { | ||||
|                         api_models::payments::AdditionalPaymentData::Card(Box::new( | ||||
| @ -2651,9 +2655,9 @@ pub async fn get_additional_payment_data( | ||||
|                                 card_issuing_country: card_info.card_issuing_country, | ||||
|                                 last4: last4.clone(), | ||||
|                                 card_isin: card_isin.clone(), | ||||
|                                 card_exp_month: card_data.card_exp_month.clone(), | ||||
|                                 card_exp_year: card_data.card_exp_year.clone(), | ||||
|                                 card_holder_name: card_data.card_holder_name.clone(), | ||||
|                                 card_exp_month: Some(card_data.card_exp_month.clone()), | ||||
|                                 card_exp_year: Some(card_data.card_exp_year.clone()), | ||||
|                                 card_holder_name: Some(card_data.card_holder_name.clone()), | ||||
|                             }, | ||||
|                         )) | ||||
|                     }); | ||||
| @ -2666,9 +2670,9 @@ pub async fn get_additional_payment_data( | ||||
|                         card_issuing_country: None, | ||||
|                         last4, | ||||
|                         card_isin, | ||||
|                         card_exp_month: card_data.card_exp_month.clone(), | ||||
|                         card_exp_year: card_data.card_exp_year.clone(), | ||||
|                         card_holder_name: card_data.card_holder_name.clone(), | ||||
|                         card_exp_month: Some(card_data.card_exp_month.clone()), | ||||
|                         card_exp_year: Some(card_data.card_exp_year.clone()), | ||||
|                         card_holder_name: Some(card_data.card_holder_name.clone()), | ||||
|                     }, | ||||
|                 ))) | ||||
|             } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user