Skip to content

Commit 7623ea9

Browse files
refactor(router): add parameter connectors to get_request_body function (#2708)
1 parent 5642fef commit 7623ea9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+920
-259
lines changed

connector-template/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ impl
157157
Err(errors::ConnectorError::NotImplemented("get_url method".to_string()).into())
158158
}
159159

160-
fn get_request_body(&self, req: &types::PaymentsAuthorizeRouterData) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
160+
fn get_request_body(&self, req: &types::PaymentsAuthorizeRouterData, _connectors: &settings::Connectors,) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
161161
let connector_router_data =
162162
{{project-name | downcase}}::{{project-name | downcase | pascal_case}}RouterData::try_from((
163163
&self.get_currency_unit(),
@@ -186,7 +186,7 @@ impl
186186
.headers(types::PaymentsAuthorizeType::get_headers(
187187
self, req, connectors,
188188
)?)
189-
.body(types::PaymentsAuthorizeType::get_request_body(self, req)?)
189+
.body(types::PaymentsAuthorizeType::get_request_body(self, req, connectors)?)
190190
.build(),
191191
))
192192
}
@@ -302,6 +302,7 @@ impl
302302
fn get_request_body(
303303
&self,
304304
_req: &types::PaymentsCaptureRouterData,
305+
_connectors: &settings::Connectors,
305306
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
306307
Err(errors::ConnectorError::NotImplemented("get_request_body method".to_string()).into())
307308
}
@@ -319,7 +320,7 @@ impl
319320
.headers(types::PaymentsCaptureType::get_headers(
320321
self, req, connectors,
321322
)?)
322-
.body(types::PaymentsCaptureType::get_request_body(self, req)?)
323+
.body(types::PaymentsCaptureType::get_request_body(self, req, connectors)?)
323324
.build(),
324325
))
325326
}
@@ -374,7 +375,7 @@ impl
374375
Err(errors::ConnectorError::NotImplemented("get_url method".to_string()).into())
375376
}
376377

377-
fn get_request_body(&self, req: &types::RefundsRouterData<api::Execute>) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
378+
fn get_request_body(&self, req: &types::RefundsRouterData<api::Execute>, _connectors: &settings::Connectors,) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
378379
let connector_router_data =
379380
{{project-name | downcase}}::{{project-name | downcase | pascal_case}}RouterData::try_from((
380381
&self.get_currency_unit(),
@@ -394,7 +395,7 @@ impl
394395
.url(&types::RefundExecuteType::get_url(self, req, connectors)?)
395396
.attach_default_headers()
396397
.headers(types::RefundExecuteType::get_headers(self, req, connectors)?)
397-
.body(types::RefundExecuteType::get_request_body(self, req)?)
398+
.body(types::RefundExecuteType::get_request_body(self, req, connectors)?)
398399
.build();
399400
Ok(Some(request))
400401
}
@@ -442,7 +443,7 @@ impl
442443
.url(&types::RefundSyncType::get_url(self, req, connectors)?)
443444
.attach_default_headers()
444445
.headers(types::RefundSyncType::get_headers(self, req, connectors)?)
445-
.body(types::RefundSyncType::get_request_body(self, req)?)
446+
.body(types::RefundSyncType::get_request_body(self, req, connectors)?)
446447
.build(),
447448
))
448449
}

crates/router/src/connector/aci.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,9 @@ impl
201201
.url(&types::PaymentsSyncType::get_url(self, req, connectors)?)
202202
.attach_default_headers()
203203
.headers(types::PaymentsSyncType::get_headers(self, req, connectors)?)
204-
.body(types::PaymentsSyncType::get_request_body(self, req)?)
204+
.body(types::PaymentsSyncType::get_request_body(
205+
self, req, connectors,
206+
)?)
205207
.build(),
206208
))
207209
}
@@ -280,6 +282,7 @@ impl
280282
fn get_request_body(
281283
&self,
282284
req: &types::PaymentsAuthorizeRouterData,
285+
_connectors: &settings::Connectors,
283286
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
284287
// encode only for for urlencoded things.
285288
let connector_router_data = aci::AciRouterData::try_from((
@@ -317,7 +320,9 @@ impl
317320
.headers(types::PaymentsAuthorizeType::get_headers(
318321
self, req, connectors,
319322
)?)
320-
.body(types::PaymentsAuthorizeType::get_request_body(self, req)?)
323+
.body(types::PaymentsAuthorizeType::get_request_body(
324+
self, req, connectors,
325+
)?)
321326
.build(),
322327
))
323328
}
@@ -386,6 +391,7 @@ impl
386391
fn get_request_body(
387392
&self,
388393
req: &types::PaymentsCancelRouterData,
394+
_connectors: &settings::Connectors,
389395
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
390396
let connector_req = aci::AciCancelRequest::try_from(req)?;
391397
let aci_req = types::RequestBody::log_and_get_request_body(
@@ -406,7 +412,9 @@ impl
406412
.url(&types::PaymentsVoidType::get_url(self, req, connectors)?)
407413
.attach_default_headers()
408414
.headers(types::PaymentsVoidType::get_headers(self, req, connectors)?)
409-
.body(types::PaymentsVoidType::get_request_body(self, req)?)
415+
.body(types::PaymentsVoidType::get_request_body(
416+
self, req, connectors,
417+
)?)
410418
.build(),
411419
))
412420
}
@@ -479,6 +487,7 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
479487
fn get_request_body(
480488
&self,
481489
req: &types::RefundsRouterData<api::Execute>,
490+
_connectors: &settings::Connectors,
482491
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
483492
let connector_router_data = aci::AciRouterData::try_from((
484493
&self.get_currency_unit(),
@@ -508,7 +517,9 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
508517
.headers(types::RefundExecuteType::get_headers(
509518
self, req, connectors,
510519
)?)
511-
.body(types::RefundExecuteType::get_request_body(self, req)?)
520+
.body(types::RefundExecuteType::get_request_body(
521+
self, req, connectors,
522+
)?)
512523
.build(),
513524
))
514525
}

crates/router/src/connector/adyen.rs

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ impl
172172
fn get_request_body(
173173
&self,
174174
req: &types::SetupMandateRouterData,
175+
_connectors: &settings::Connectors,
175176
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
176177
let authorize_req = types::PaymentsAuthorizeRouterData::from((
177178
req,
@@ -203,7 +204,9 @@ impl
203204
.url(&types::SetupMandateType::get_url(self, req, connectors)?)
204205
.attach_default_headers()
205206
.headers(types::SetupMandateType::get_headers(self, req, connectors)?)
206-
.body(types::SetupMandateType::get_request_body(self, req)?)
207+
.body(types::SetupMandateType::get_request_body(
208+
self, req, connectors,
209+
)?)
207210
.build(),
208211
))
209212
}
@@ -306,6 +309,7 @@ impl
306309
fn get_request_body(
307310
&self,
308311
req: &types::PaymentsCaptureRouterData,
312+
_connectors: &settings::Connectors,
309313
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
310314
let connector_router_data = adyen::AdyenRouterData::try_from((
311315
&self.get_currency_unit(),
@@ -334,7 +338,9 @@ impl
334338
.headers(types::PaymentsCaptureType::get_headers(
335339
self, req, connectors,
336340
)?)
337-
.body(types::PaymentsCaptureType::get_request_body(self, req)?)
341+
.body(types::PaymentsCaptureType::get_request_body(
342+
self, req, connectors,
343+
)?)
338344
.build(),
339345
))
340346
}
@@ -398,6 +404,7 @@ impl
398404
fn get_request_body(
399405
&self,
400406
req: &types::RouterData<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>,
407+
_connectors: &settings::Connectors,
401408
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
402409
// Adyen doesn't support PSync flow. We use PSync flow to fetch payment details,
403410
// specifically the redirect URL that takes the user to their Payment page. In non-redirection flows,
@@ -482,15 +489,17 @@ impl
482489
req: &types::RouterData<api::PSync, types::PaymentsSyncData, types::PaymentsResponseData>,
483490
connectors: &settings::Connectors,
484491
) -> CustomResult<Option<services::Request>, errors::ConnectorError> {
485-
let request_body = self.get_request_body(req)?;
492+
let request_body = self.get_request_body(req, connectors)?;
486493
match request_body {
487494
Some(_) => Ok(Some(
488495
services::RequestBuilder::new()
489496
.method(services::Method::Post)
490497
.url(&types::PaymentsSyncType::get_url(self, req, connectors)?)
491498
.attach_default_headers()
492499
.headers(types::PaymentsSyncType::get_headers(self, req, connectors)?)
493-
.body(types::PaymentsSyncType::get_request_body(self, req)?)
500+
.body(types::PaymentsSyncType::get_request_body(
501+
self, req, connectors,
502+
)?)
494503
.build(),
495504
)),
496505
None => Ok(None),
@@ -632,6 +641,7 @@ impl
632641
fn get_request_body(
633642
&self,
634643
req: &types::PaymentsAuthorizeRouterData,
644+
_connectors: &settings::Connectors,
635645
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
636646
let connector_router_data = adyen::AdyenRouterData::try_from((
637647
&self.get_currency_unit(),
@@ -664,7 +674,9 @@ impl
664674
.headers(types::PaymentsAuthorizeType::get_headers(
665675
self, req, connectors,
666676
)?)
667-
.body(types::PaymentsAuthorizeType::get_request_body(self, req)?)
677+
.body(types::PaymentsAuthorizeType::get_request_body(
678+
self, req, connectors,
679+
)?)
668680
.build(),
669681
))
670682
}
@@ -752,6 +764,7 @@ impl
752764
fn get_request_body(
753765
&self,
754766
req: &types::PaymentsBalanceRouterData,
767+
_connectors: &settings::Connectors,
755768
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
756769
let connector_req = adyen::AdyenBalanceRequest::try_from(req)?;
757770

@@ -776,7 +789,9 @@ impl
776789
.headers(types::PaymentsBalanceType::get_headers(
777790
self, req, connectors,
778791
)?)
779-
.body(types::PaymentsBalanceType::get_request_body(self, req)?)
792+
.body(types::PaymentsBalanceType::get_request_body(
793+
self, req, connectors,
794+
)?)
780795
.build(),
781796
))
782797
}
@@ -845,6 +860,7 @@ impl
845860
fn get_request_body(
846861
&self,
847862
req: &types::PaymentsCancelRouterData,
863+
_connectors: &settings::Connectors,
848864
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
849865
let connector_req = adyen::AdyenCancelRequest::try_from(req)?;
850866

@@ -866,7 +882,9 @@ impl
866882
.url(&types::PaymentsVoidType::get_url(self, req, connectors)?)
867883
.attach_default_headers()
868884
.headers(types::PaymentsVoidType::get_headers(self, req, connectors)?)
869-
.body(types::PaymentsVoidType::get_request_body(self, req)?)
885+
.body(types::PaymentsVoidType::get_request_body(
886+
self, req, connectors,
887+
)?)
870888
.build(),
871889
))
872890
}
@@ -955,6 +973,7 @@ impl services::ConnectorIntegration<api::PoCancel, types::PayoutsData, types::Pa
955973
fn get_request_body(
956974
&self,
957975
req: &types::PayoutsRouterData<api::PoCancel>,
976+
_connectors: &settings::Connectors,
958977
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
959978
let connector_req = adyen::AdyenPayoutCancelRequest::try_from(req)?;
960979
let adyen_req = types::RequestBody::log_and_get_request_body(
@@ -975,7 +994,9 @@ impl services::ConnectorIntegration<api::PoCancel, types::PayoutsData, types::Pa
975994
.url(&types::PayoutCancelType::get_url(self, req, connectors)?)
976995
.attach_default_headers()
977996
.headers(types::PayoutCancelType::get_headers(self, req, connectors)?)
978-
.body(types::PayoutCancelType::get_request_body(self, req)?)
997+
.body(types::PayoutCancelType::get_request_body(
998+
self, req, connectors,
999+
)?)
9791000
.build();
9801001

9811002
Ok(Some(request))
@@ -1040,6 +1061,7 @@ impl services::ConnectorIntegration<api::PoCreate, types::PayoutsData, types::Pa
10401061
fn get_request_body(
10411062
&self,
10421063
req: &types::PayoutsRouterData<api::PoCreate>,
1064+
_connectors: &settings::Connectors,
10431065
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
10441066
let connector_router_data = adyen::AdyenRouterData::try_from((
10451067
&self.get_currency_unit(),
@@ -1066,7 +1088,9 @@ impl services::ConnectorIntegration<api::PoCreate, types::PayoutsData, types::Pa
10661088
.url(&types::PayoutCreateType::get_url(self, req, connectors)?)
10671089
.attach_default_headers()
10681090
.headers(types::PayoutCreateType::get_headers(self, req, connectors)?)
1069-
.body(types::PayoutCreateType::get_request_body(self, req)?)
1091+
.body(types::PayoutCreateType::get_request_body(
1092+
self, req, connectors,
1093+
)?)
10701094
.build();
10711095

10721096
Ok(Some(request))
@@ -1132,6 +1156,7 @@ impl
11321156
fn get_request_body(
11331157
&self,
11341158
req: &types::PayoutsRouterData<api::PoEligibility>,
1159+
_connectors: &settings::Connectors,
11351160
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
11361161
let connector_router_data = adyen::AdyenRouterData::try_from((
11371162
&self.get_currency_unit(),
@@ -1162,7 +1187,9 @@ impl
11621187
.headers(types::PayoutEligibilityType::get_headers(
11631188
self, req, connectors,
11641189
)?)
1165-
.body(types::PayoutEligibilityType::get_request_body(self, req)?)
1190+
.body(types::PayoutEligibilityType::get_request_body(
1191+
self, req, connectors,
1192+
)?)
11661193
.build();
11671194

11681195
Ok(Some(request))
@@ -1241,6 +1268,7 @@ impl services::ConnectorIntegration<api::PoFulfill, types::PayoutsData, types::P
12411268
fn get_request_body(
12421269
&self,
12431270
req: &types::PayoutsRouterData<api::PoFulfill>,
1271+
_connectors: &settings::Connectors,
12441272
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
12451273
let connector_router_data = adyen::AdyenRouterData::try_from((
12461274
&self.get_currency_unit(),
@@ -1269,7 +1297,9 @@ impl services::ConnectorIntegration<api::PoFulfill, types::PayoutsData, types::P
12691297
.headers(types::PayoutFulfillType::get_headers(
12701298
self, req, connectors,
12711299
)?)
1272-
.body(types::PayoutFulfillType::get_request_body(self, req)?)
1300+
.body(types::PayoutFulfillType::get_request_body(
1301+
self, req, connectors,
1302+
)?)
12731303
.build();
12741304

12751305
Ok(Some(request))
@@ -1339,6 +1369,7 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
13391369
fn get_request_body(
13401370
&self,
13411371
req: &types::RefundsRouterData<api::Execute>,
1372+
_connectors: &settings::Connectors,
13421373
) -> CustomResult<Option<types::RequestBody>, errors::ConnectorError> {
13431374
let connector_router_data = adyen::AdyenRouterData::try_from((
13441375
&self.get_currency_unit(),
@@ -1369,7 +1400,9 @@ impl services::ConnectorIntegration<api::Execute, types::RefundsData, types::Ref
13691400
.headers(types::RefundExecuteType::get_headers(
13701401
self, req, connectors,
13711402
)?)
1372-
.body(types::RefundExecuteType::get_request_body(self, req)?)
1403+
.body(types::RefundExecuteType::get_request_body(
1404+
self, req, connectors,
1405+
)?)
13731406
.build(),
13741407
))
13751408
}

0 commit comments

Comments
 (0)