Skip to content

Commit 15a255e

Browse files
authored
feat(connector): [Prophetpay] Save card token for Refund and remove Void flow (#2927)
1 parent e66ccde commit 15a255e

File tree

2 files changed

+272
-159
lines changed

2 files changed

+272
-159
lines changed

crates/router/src/connector/prophetpay.rs

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -107,16 +107,15 @@ impl ConnectorCommon for Prophetpay {
107107
&self,
108108
res: Response,
109109
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
110-
let response: prophetpay::ProphetpayErrorResponse = res
110+
let response: serde_json::Value = res
111111
.response
112-
.parse_struct("ProphetpayErrorResponse")
112+
.parse_struct("ProphetPayErrorResponse")
113113
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
114-
115114
Ok(ErrorResponse {
116115
status_code: res.status_code,
117-
code: response.status.to_string(),
118-
message: response.title,
119-
reason: Some(response.errors.to_string()),
116+
code: consts::NO_ERROR_CODE.to_string(),
117+
message: consts::NO_ERROR_MESSAGE.to_string(),
118+
reason: Some(response.to_string()),
120119
attempt_status: None,
121120
})
122121
}
@@ -324,7 +323,7 @@ impl
324323
where
325324
types::PaymentsResponseData: Clone,
326325
{
327-
let response: prophetpay::ProphetpayResponse = res
326+
let response: prophetpay::ProphetpayCompleteAuthResponse = res
328327
.response
329328
.parse_struct("prophetpay ProphetpayResponse")
330329
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
@@ -407,9 +406,9 @@ impl ConnectorIntegration<api::PSync, types::PaymentsSyncData, types::PaymentsRe
407406
data: &types::PaymentsSyncRouterData,
408407
res: Response,
409408
) -> CustomResult<types::PaymentsSyncRouterData, errors::ConnectorError> {
410-
let response: prophetpay::ProphetpayResponse = res
409+
let response: prophetpay::ProphetpaySyncResponse = res
411410
.response
412-
.parse_struct("prophetpay ProphetpayResponse")
411+
.parse_struct("prophetpay PaymentsSyncResponse")
413412
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
414413
types::RouterData::try_from(types::ResponseRouterData {
415414
response,
@@ -431,9 +430,12 @@ impl ConnectorIntegration<api::Capture, types::PaymentsCaptureData, types::Payme
431430
{
432431
}
433432

433+
// This is Void Implementation for Prophetpay
434+
// Since Prophetpay does not have capture this have been commented out but kept if it is required for future usage
434435
impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsResponseData>
435436
for Prophetpay
436437
{
438+
/*
437439
fn get_headers(
438440
&self,
439441
req: &types::PaymentsCancelRouterData,
@@ -471,33 +473,25 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
471473
.change_context(errors::ConnectorError::RequestEncodingFailed)?;
472474
Ok(Some(prophetpay_req))
473475
}
476+
*/
474477

475478
fn build_request(
476479
&self,
477-
req: &types::PaymentsCancelRouterData,
478-
connectors: &settings::Connectors,
480+
_req: &types::PaymentsCancelRouterData,
481+
_connectors: &settings::Connectors,
479482
) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
480-
Ok(Some(
481-
services::RequestBuilder::new()
482-
.method(services::Method::Get)
483-
.url(&types::PaymentsVoidType::get_url(self, req, connectors)?)
484-
.attach_default_headers()
485-
.headers(types::PaymentsVoidType::get_headers(self, req, connectors)?)
486-
.body(types::PaymentsVoidType::get_request_body(
487-
self, req, connectors,
488-
)?)
489-
.build(),
490-
))
483+
Err(errors::ConnectorError::NotImplemented("Void flow not implemented".to_string()).into())
491484
}
492485

486+
/*
493487
fn handle_response(
494488
&self,
495489
data: &types::PaymentsCancelRouterData,
496490
res: Response,
497491
) -> CustomResult<types::PaymentsCancelRouterData, errors::ConnectorError> {
498-
let response: prophetpay::ProphetpayResponse = res
492+
let response: prophetpay::ProphetpayVoidResponse = res
499493
.response
500-
.parse_struct("prophetpay ProphetpayResponse")
494+
.parse_struct("prophetpay PaymentsCancelResponse")
501495
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;
502496
types::RouterData::try_from(types::ResponseRouterData {
503497
response,
@@ -512,6 +506,7 @@ impl ConnectorIntegration<api::Void, types::PaymentsCancelData, types::PaymentsR
512506
) -> CustomResult<ErrorResponse, errors::ConnectorError> {
513507
self.build_error_response(res)
514508
}
509+
*/
515510
}
516511

517512
impl ConnectorIntegration<api::Execute, types::RefundsData, types::RefundsResponseData>
@@ -652,7 +647,7 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
652647
) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
653648
Ok(Some(
654649
services::RequestBuilder::new()
655-
.method(services::Method::Get)
650+
.method(services::Method::Post)
656651
.url(&types::RefundSyncType::get_url(self, req, connectors)?)
657652
.attach_default_headers()
658653
.headers(types::RefundSyncType::get_headers(self, req, connectors)?)
@@ -668,7 +663,7 @@ impl ConnectorIntegration<api::RSync, types::RefundsData, types::RefundsResponse
668663
data: &types::RefundSyncRouterData,
669664
res: Response,
670665
) -> CustomResult<types::RefundSyncRouterData, errors::ConnectorError> {
671-
let response: prophetpay::ProphetpayRefundResponse = res
666+
let response: prophetpay::ProphetpayRefundSyncResponse = res
672667
.response
673668
.parse_struct("prophetpay ProphetpayRefundResponse")
674669
.change_context(errors::ConnectorError::ResponseDeserializationFailed)?;

0 commit comments

Comments
 (0)