mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 04:04:55 +08:00
fix(connector): [HELCIM] Handle 4XX Errors (#3458)
This commit is contained in:
@ -128,9 +128,12 @@ impl ConnectorCommon for Helcim {
|
|||||||
.response
|
.response
|
||||||
.parse_struct("HelcimErrorResponse")
|
.parse_struct("HelcimErrorResponse")
|
||||||
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
|
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
|
||||||
let error_string = match response.errors {
|
let error_string = match response {
|
||||||
transformers::HelcimErrorTypes::StringType(error) => error,
|
transformers::HelcimErrorResponse::Payment(response) => match response.errors {
|
||||||
transformers::HelcimErrorTypes::JsonType(error) => error.to_string(),
|
transformers::HelcimErrorTypes::StringType(error) => error,
|
||||||
|
transformers::HelcimErrorTypes::JsonType(error) => error.to_string(),
|
||||||
|
},
|
||||||
|
transformers::HelcimErrorResponse::General(error_string) => error_string,
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(ErrorResponse {
|
Ok(ErrorResponse {
|
||||||
|
|||||||
@ -756,6 +756,13 @@ pub enum HelcimErrorTypes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Deserialize)]
|
#[derive(Debug, Deserialize)]
|
||||||
pub struct HelcimErrorResponse {
|
pub struct HelcimPaymentsErrorResponse {
|
||||||
pub errors: HelcimErrorTypes,
|
pub errors: HelcimErrorTypes,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Deserialize)]
|
||||||
|
#[serde(untagged)]
|
||||||
|
pub enum HelcimErrorResponse {
|
||||||
|
Payment(HelcimPaymentsErrorResponse),
|
||||||
|
General(String),
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user