mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 18:17:13 +08:00 
			
		
		
		
	fix: Error Mapping for Bluensap & Card Number for Airwallex (#686)
This commit is contained in:
		| @ -93,7 +93,9 @@ impl TryFrom<&types::PaymentsAuthorizeRouterData> for AirwallexPaymentsRequest { | ||||
|                     })); | ||||
|                 Ok(AirwallexPaymentMethod::Card(AirwallexCard { | ||||
|                     card: AirwallexCardDetails { | ||||
|                         number: ccard.card_number, | ||||
|                         number: ccard | ||||
|                             .card_number | ||||
|                             .map(|card| card.split_whitespace().collect()), | ||||
|                         expiry_month: ccard.card_exp_month.clone(), | ||||
|                         expiry_year: ccard.card_exp_year.clone(), | ||||
|                         cvc: ccard.card_cvc, | ||||
|  | ||||
| @ -80,25 +80,33 @@ impl ConnectorCommon for Bluesnap { | ||||
|         res: Response, | ||||
|     ) -> CustomResult<ErrorResponse, errors::ConnectorError> { | ||||
|         logger::debug!(bluesnap_error_response=?res); | ||||
|         let response: bluesnap::BluesnapErrorResponse = res | ||||
|         let response: bluesnap::BluesnapErrors = res | ||||
|             .response | ||||
|             .parse_struct("BluesnapErrorResponse") | ||||
|             .change_context(errors::ConnectorError::ResponseDeserializationFailed)?; | ||||
|  | ||||
|         let response_error_message = response.message.first().map_or( | ||||
|             ErrorResponse { | ||||
|         let response_error_message = match response { | ||||
|             bluesnap::BluesnapErrors::PaymentError(error_res) => error_res.message.first().map_or( | ||||
|                 ErrorResponse { | ||||
|                     status_code: res.status_code, | ||||
|                     code: consts::NO_ERROR_CODE.to_string(), | ||||
|                     message: consts::NO_ERROR_MESSAGE.to_string(), | ||||
|                     reason: None, | ||||
|                 }, | ||||
|                 |error_response| ErrorResponse { | ||||
|                     status_code: res.status_code, | ||||
|                     code: error_response.code.clone(), | ||||
|                     message: error_response.description.clone(), | ||||
|                     reason: None, | ||||
|                 }, | ||||
|             ), | ||||
|             bluesnap::BluesnapErrors::AuthError(error_res) => ErrorResponse { | ||||
|                 status_code: res.status_code, | ||||
|                 code: consts::NO_ERROR_CODE.to_string(), | ||||
|                 message: consts::NO_ERROR_MESSAGE.to_string(), | ||||
|                 code: error_res.error_code.clone(), | ||||
|                 message: error_res.error_description, | ||||
|                 reason: None, | ||||
|             }, | ||||
|             |error_response| ErrorResponse { | ||||
|                 status_code: res.status_code, | ||||
|                 code: error_response.code.clone(), | ||||
|                 message: error_response.description.clone(), | ||||
|                 reason: None, | ||||
|             }, | ||||
|         ); | ||||
|         }; | ||||
|         Ok(response_error_message) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -325,8 +325,22 @@ pub struct ErrorDetails { | ||||
|     pub description: String, | ||||
| } | ||||
|  | ||||
| #[derive(Default, Debug, Clone, Serialize, Deserialize, PartialEq)] | ||||
| #[derive(Default, Debug, Clone, Deserialize, PartialEq)] | ||||
| #[serde(rename_all = "camelCase")] | ||||
| pub struct BluesnapErrorResponse { | ||||
|     pub message: Vec<ErrorDetails>, | ||||
| } | ||||
|  | ||||
| #[derive(Default, Debug, Clone, Deserialize, PartialEq)] | ||||
| #[serde(rename_all = "camelCase")] | ||||
| pub struct BluesnapAuthErrorResponse { | ||||
|     pub error_code: String, | ||||
|     pub error_description: String, | ||||
| } | ||||
|  | ||||
| #[derive(Debug, Clone, Deserialize, PartialEq)] | ||||
| #[serde(untagged)] | ||||
| pub enum BluesnapErrors { | ||||
|     PaymentError(BluesnapErrorResponse), | ||||
|     AuthError(BluesnapAuthErrorResponse), | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 SamraatBansal
					SamraatBansal