feat: add connector error (#415)

This commit is contained in:
Nishant Joshi
2023-01-20 00:23:13 +05:30
committed by GitHub
parent d0c1f96d7c
commit 57c46b2442
29 changed files with 305 additions and 163 deletions

View File

@ -3,7 +3,6 @@ mod transformers;
use std::fmt::Debug;
use base64::Engine;
use bytes::Bytes;
use error_stack::{IntoReport, ResultExt};
use router_env::{instrument, tracing};
@ -156,12 +155,14 @@ impl
}
fn get_error_response(
&self,
res: Bytes,
res: types::Response,
) -> CustomResult<types::ErrorResponse, errors::ConnectorError> {
let response: adyen::ErrorResponse = res
.response
.parse_struct("adyen::ErrorResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
Ok(types::ErrorResponse {
status_code: res.status_code,
code: response.error_code,
message: response.message,
reason: None,
@ -288,12 +289,14 @@ impl
fn get_error_response(
&self,
res: Bytes,
res: types::Response,
) -> CustomResult<types::ErrorResponse, errors::ConnectorError> {
let response: adyen::ErrorResponse = res
.response
.parse_struct("ErrorResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
Ok(types::ErrorResponse {
status_code: res.status_code,
code: response.error_code,
message: response.message,
reason: None,
@ -397,12 +400,14 @@ impl
fn get_error_response(
&self,
res: Bytes,
res: types::Response,
) -> CustomResult<types::ErrorResponse, errors::ConnectorError> {
let response: adyen::ErrorResponse = res
.response
.parse_struct("ErrorResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
Ok(types::ErrorResponse {
status_code: res.status_code,
code: response.error_code,
message: response.message,
reason: None,
@ -490,13 +495,15 @@ impl
fn get_error_response(
&self,
res: Bytes,
res: types::Response,
) -> CustomResult<types::ErrorResponse, errors::ConnectorError> {
let response: adyen::ErrorResponse = res
.response
.parse_struct("ErrorResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
logger::info!(response=?res);
Ok(types::ErrorResponse {
status_code: res.status_code,
code: response.error_code,
message: response.message,
reason: None,
@ -588,13 +595,15 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
fn get_error_response(
&self,
res: Bytes,
res: types::Response,
) -> CustomResult<types::ErrorResponse, errors::ConnectorError> {
let response: adyen::ErrorResponse = res
.response
.parse_struct("ErrorResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
logger::info!(response=?res);
Ok(types::ErrorResponse {
status_code: res.status_code,
code: response.error_code,
message: response.message,
reason: None,