Skip to content

Commit 0889a6e

Browse files
refactor(connector): [noon] use connector_request_reference_id for sync (#2558)
1 parent 642085d commit 0889a6e

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

crates/router/src/connector/noon.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use error_stack::{IntoReport, ResultExt};
99
use masking::PeekInterface;
1010
use transformers as noon;
1111

12-
use super::utils::PaymentsSyncRequestData;
1312
use crate::{
1413
configs::settings,
1514
connector::utils as connector_utils,
@@ -276,10 +275,10 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
276275
req: &types::PaymentsSyncRouterData,
277276
connectors: &settings::Connectors,
278277
) -> CustomResult<String, errors::ConnectorError> {
279-
let connector_transaction_id = req.request.get_connector_transaction_id()?;
280278
Ok(format!(
281-
"{}payment/v1/order/{connector_transaction_id}",
282-
self.base_url(connectors)
279+
"{}payment/v1/order/getbyreference/{}",
280+
self.base_url(connectors),
281+
req.connector_request_reference_id
283282
))
284283
}
285284

@@ -569,9 +568,9 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
569568
connectors: &settings::Connectors,
570569
) -> CustomResult<String, errors::ConnectorError> {
571570
Ok(format!(
572-
"{}payment/v1/order/{}",
571+
"{}payment/v1/order/getbyreference/{}",
573572
self.base_url(connectors),
574-
req.request.connector_transaction_id
573+
req.connector_request_reference_id
575574
))
576575
}
577576

crates/router/src/connector/noon/transformers.rs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ use serde::{Deserialize, Serialize};
44

55
use crate::{
66
connector::utils::{
7-
self as conn_utils, CardData, PaymentsAuthorizeRequestData, RefundsRequestData, RouterData,
8-
WalletData,
7+
self as conn_utils, CardData, PaymentsAuthorizeRequestData, RouterData, WalletData,
98
},
109
core::errors,
1110
services,
@@ -438,6 +437,7 @@ impl<F, T>
438437
pub struct NoonActionTransaction {
439438
amount: String,
440439
currency: diesel_models::enums::Currency,
440+
transaction_reference: Option<String>,
441441
}
442442

443443
#[derive(Debug, Serialize)]
@@ -466,6 +466,7 @@ impl TryFrom<&types::PaymentsCaptureRouterData> for NoonPaymentsActionRequest {
466466
item.request.currency,
467467
)?,
468468
currency: item.request.currency,
469+
transaction_reference: None,
469470
};
470471
Ok(Self {
471472
api_operation: NoonApiOperations::Capture,
@@ -507,6 +508,7 @@ impl<F> TryFrom<&types::RefundsRouterData<F>> for NoonPaymentsActionRequest {
507508
item.request.currency,
508509
)?,
509510
currency: item.request.currency,
511+
transaction_reference: Some(item.request.refund_id.clone()),
510512
};
511513
Ok(Self {
512514
api_operation: NoonApiOperations::Refund,
@@ -570,9 +572,11 @@ impl TryFrom<types::RefundsResponseRouterData<api::Execute, RefundResponse>>
570572
}
571573

572574
#[derive(Default, Debug, Deserialize)]
575+
#[serde(rename_all = "camelCase")]
573576
pub struct NoonRefundResponseTransactions {
574577
id: String,
575578
status: RefundStatus,
579+
transaction_reference: Option<String>,
576580
}
577581

578582
#[derive(Default, Debug, Deserialize)]
@@ -592,13 +596,19 @@ impl TryFrom<types::RefundsResponseRouterData<api::RSync, RefundSyncResponse>>
592596
fn try_from(
593597
item: types::RefundsResponseRouterData<api::RSync, RefundSyncResponse>,
594598
) -> Result<Self, Self::Error> {
595-
let connector_refund_id = item.data.request.get_connector_refund_id()?;
596599
let noon_transaction: &NoonRefundResponseTransactions = item
597600
.response
598601
.result
599602
.transactions
600603
.iter()
601-
.find(|transaction| transaction.id == connector_refund_id)
604+
.find(|transaction| {
605+
transaction
606+
.transaction_reference
607+
.clone()
608+
.map_or(false, |transaction_instance| {
609+
transaction_instance == item.data.request.refund_id
610+
})
611+
})
602612
.ok_or(errors::ConnectorError::ResponseHandlingFailed)?;
603613

604614
Ok(Self {

0 commit comments

Comments
 (0)