refactor(router): miscellaneous cleanups (#134)

This commit is contained in:
kos-for-juspay
2022-12-13 14:22:45 +01:00
committed by GitHub
parent 16cc0a4b38
commit 73581e4a4e
4 changed files with 39 additions and 120 deletions

View File

@ -162,27 +162,7 @@ impl
&self,
res: Bytes,
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
let response: authorizedotnet::AuthorizedotnetPaymentsResponse = res
.parse_struct("AuthorizedotnetPaymentsResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
let error = response
.transaction_response
.errors
.and_then(|errors| {
errors.first().map(|error| types::ErrorResponse {
code: error.error_code.clone(),
message: error.error_text.clone(),
reason: None,
})
})
.unwrap_or_else(|| types::ErrorResponse {
code: consts::NO_ERROR_CODE.to_string(),
message: consts::NO_ERROR_MESSAGE.to_string(),
reason: None,
});
Ok(error)
get_error_response(res)
}
}
@ -282,27 +262,7 @@ impl
&self,
res: Bytes,
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
let response: authorizedotnet::AuthorizedotnetPaymentsResponse = res
.parse_struct("AuthorizedotnetPaymentsResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
let error = response
.transaction_response
.errors
.and_then(|errors| {
errors.first().map(|error| types::ErrorResponse {
code: error.error_code.clone(),
message: error.error_text.clone(),
reason: None,
})
})
.unwrap_or_else(|| types::ErrorResponse {
code: consts::NO_ERROR_CODE.to_string(),
message: consts::NO_ERROR_MESSAGE.to_string(),
reason: None,
});
Ok(error)
get_error_response(res)
}
}
@ -393,27 +353,7 @@ impl
&self,
res: Bytes,
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
let response: authorizedotnet::AuthorizedotnetPaymentsResponse = res
.parse_struct("AuthorizedotnetPaymentsResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
let error = response
.transaction_response
.errors
.and_then(|errors| {
errors.first().map(|error| types::ErrorResponse {
code: error.error_code.clone(),
message: error.error_text.clone(),
reason: None,
})
})
.unwrap_or_else(|| types::ErrorResponse {
code: consts::NO_ERROR_CODE.to_string(),
message: consts::NO_ERROR_MESSAGE.to_string(),
reason: None,
});
Ok(error)
get_error_response(res)
}
}
@ -506,28 +446,7 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
&self,
res: Bytes,
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
let response: authorizedotnet::AuthorizedotnetPaymentsResponse = res
.parse_struct("AuthorizedotnetPaymentsResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
logger::info!(response=?res);
let error = response
.transaction_response
.errors
.and_then(|errors| {
errors.first().map(|error| types::ErrorResponse {
code: error.error_code.clone(),
message: error.error_text.clone(),
reason: None,
})
})
.unwrap_or_else(|| types::ErrorResponse {
code: consts::NO_ERROR_CODE.to_string(),
message: consts::NO_ERROR_MESSAGE.to_string(),
reason: None,
});
Ok(error)
get_error_response(res)
}
}
@ -615,27 +534,7 @@ impl services::ConnectorIntegration<api::RSync, types::RefundsData, types::Refun
&self,
res: Bytes,
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
let response: authorizedotnet::AuthorizedotnetPaymentsResponse = res
.parse_struct("AuthorizedotnetPaymentsResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
let error = response
.transaction_response
.errors
.and_then(|errors| {
errors.first().map(|error| types::ErrorResponse {
code: error.error_code.clone(),
message: error.error_text.clone(),
reason: None,
})
})
.unwrap_or_else(|| types::ErrorResponse {
code: consts::NO_ERROR_CODE.to_string(),
message: consts::NO_ERROR_MESSAGE.to_string(),
reason: None,
});
Ok(error)
get_error_response(res)
}
}
@ -664,3 +563,28 @@ impl api::IncomingWebhook for Authorizedotnet {
}
impl services::ConnectorRedirectResponse for Authorizedotnet {}
#[inline]
fn get_error_response(bytes: Bytes) -> CustomResult<ErrorResponse, errors::ConnectorError> {
let response: authorizedotnet::AuthorizedotnetPaymentsResponse = bytes
.parse_struct("AuthorizedotnetPaymentsResponse")
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
logger::info!(response=?response);
Ok(response
.transaction_response
.errors
.and_then(|errors| {
errors.into_iter().next().map(|error| types::ErrorResponse {
code: error.error_code,
message: error.error_text,
reason: None,
})
})
.unwrap_or_else(|| types::ErrorResponse {
code: consts::NO_ERROR_CODE.to_string(),
message: consts::NO_ERROR_MESSAGE.to_string(),
reason: None,
}))
}

View File

@ -287,9 +287,9 @@ impl<F, T>
.transaction_response
.errors
.and_then(|errors| {
errors.first().map(|error| types::ErrorResponse {
code: error.error_code.clone(),
message: error.error_text.clone(),
errors.into_iter().next().map(|error| types::ErrorResponse {
code: error.error_code,
message: error.error_text,
reason: None,
})
});

View File

@ -273,11 +273,12 @@ pub struct StripeMetadata {
pub txn_uuid: String,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
#[derive(Clone, Default, Debug, Eq, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum StripePaymentStatus {
Succeeded,
Failed,
#[default]
Processing,
#[serde(rename = "requires_action")]
RequiresCustomerAction,
@ -288,13 +289,6 @@ pub enum StripePaymentStatus {
RequiresCapture,
}
// Default should be Processing
impl Default for StripePaymentStatus {
fn default() -> Self {
StripePaymentStatus::Processing
}
}
impl From<StripePaymentStatus> for enums::AttemptStatus {
fn from(item: StripePaymentStatus) -> Self {
match item {

View File

@ -17,10 +17,11 @@ use crate::{
#[inline]
fn create_merchant_api_key() -> String {
let id = Uuid::new_v4().simple();
match env::which() {
Env::Development => format!("dev_{}", &Uuid::new_v4().simple().to_string()),
Env::Production => format!("prd_{}", &Uuid::new_v4().simple().to_string()),
Env::Sandbox => format!("snd_{}", &Uuid::new_v4().simple().to_string()),
Env::Development => format!("dev_{id}"),
Env::Production => format!("prd_{id}"),
Env::Sandbox => format!("snd_{id}"),
}
}