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