fix(connector): [Prophetpay] Use refund_id as reference_id for Refund (#2966)

This commit is contained in:
Sakil Mostak
2023-11-23 17:33:55 +05:30
committed by GitHub
parent 59ef162219
commit dd3e22a938

View File

@ -8,6 +8,7 @@ use url::Url;
use crate::{
connector::utils::{self, to_connector_meta},
consts as const_val,
core::errors,
services,
types::{self, api, storage::enums},
@ -432,7 +433,6 @@ pub struct ProphetpaySyncResponse {
pub response_text: String,
#[serde(rename = "transactionID")]
pub transaction_id: String,
pub response_code: String,
}
impl<F, T>
@ -462,7 +462,7 @@ impl<F, T>
Ok(Self {
status: enums::AttemptStatus::Failure,
response: Err(types::ErrorResponse {
code: item.response.response_code,
code: const_val::NO_ERROR_CODE.to_string(),
message: item.response.response_text.clone(),
reason: Some(item.response.response_text),
status_code: item.http_code,
@ -481,7 +481,6 @@ pub struct ProphetpayVoidResponse {
pub response_text: String,
#[serde(rename = "transactionID")]
pub transaction_id: String,
pub response_code: String,
}
impl<F, T>
@ -511,7 +510,7 @@ impl<F, T>
Ok(Self {
status: enums::AttemptStatus::VoidFailed,
response: Err(types::ErrorResponse {
code: item.response.response_code,
code: const_val::NO_ERROR_CODE.to_string(),
message: item.response.response_text.clone(),
reason: Some(item.response.response_text),
status_code: item.http_code,
@ -576,8 +575,8 @@ impl<F> TryFrom<&ProphetpayRouterData<&types::RefundsRouterData<F>>> for Prophet
amount: item.amount.to_owned(),
card_token: card_token_data.card_token,
profile: auth_data.profile_id,
ref_info: item.router_data.connector_request_reference_id.to_owned(),
inquiry_reference: item.router_data.connector_request_reference_id.clone(),
ref_info: item.router_data.request.refund_id.to_owned(),
inquiry_reference: item.router_data.request.refund_id.clone(),
action_type: ProphetpayActionType::get_action_type(&ProphetpayActionType::Refund),
})
} else {
@ -594,8 +593,7 @@ impl<F> TryFrom<&ProphetpayRouterData<&types::RefundsRouterData<F>>> for Prophet
pub struct ProphetpayRefundResponse {
pub success: bool,
pub response_text: String,
pub tran_seq_number: String,
pub response_code: String,
pub tran_seq_number: Option<String>,
}
impl TryFrom<types::RefundsResponseRouterData<api::Execute, ProphetpayRefundResponse>>
@ -609,7 +607,11 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, ProphetpayRefundResp
Ok(Self {
response: Ok(types::RefundsResponseData {
// no refund id is generated, tranSeqNumber is kept for future usage
connector_refund_id: item.response.tran_seq_number,
connector_refund_id: item.response.tran_seq_number.ok_or(
errors::ConnectorError::MissingRequiredField {
field_name: "tran_seq_number",
},
)?,
refund_status: enums::RefundStatus::Success,
}),
..item.data
@ -618,7 +620,7 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, ProphetpayRefundResp
Ok(Self {
status: enums::AttemptStatus::Failure,
response: Err(types::ErrorResponse {
code: item.response.response_code,
code: const_val::NO_ERROR_CODE.to_string(),
message: item.response.response_text.clone(),
reason: Some(item.response.response_text),
status_code: item.http_code,
@ -635,7 +637,6 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, ProphetpayRefundResp
pub struct ProphetpayRefundSyncResponse {
pub success: bool,
pub response_text: String,
pub response_code: String,
}
impl<T> TryFrom<types::RefundsResponseRouterData<T, ProphetpayRefundSyncResponse>>
@ -658,7 +659,7 @@ impl<T> TryFrom<types::RefundsResponseRouterData<T, ProphetpayRefundSyncResponse
Ok(Self {
status: enums::AttemptStatus::Failure,
response: Err(types::ErrorResponse {
code: item.response.response_code,
code: const_val::NO_ERROR_CODE.to_string(),
message: item.response.response_text.clone(),
reason: Some(item.response.response_text),
status_code: item.http_code,