feat(connector): Add record back connector integration flow (#7416)

Co-authored-by: Chikke Srujan <chikke.srujan@Chikke-Srujan-N7WRTY72X7.local>
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
chikke srujan
2025-03-12 17:33:42 +05:30
committed by GitHub
parent a387ae290e
commit 13a2749099
13 changed files with 272 additions and 39 deletions

View File

@ -15,8 +15,8 @@ use async_trait::async_trait;
use hyperswitch_domain_models::{
mandates::CustomerAcceptance,
router_flow_types::{
Authenticate, AuthenticationConfirmation, GetAdditionalRevenueRecoveryDetails,
PostAuthenticate, PreAuthenticate,
revenue_recovery::RecoveryRecordBack, Authenticate, AuthenticationConfirmation,
GetAdditionalRevenueRecoveryDetails, PostAuthenticate, PreAuthenticate,
},
router_request_types::PaymentsCaptureData,
};
@ -2268,6 +2268,51 @@ fn handle_post_capture_response(
}
}
macro_rules! default_imp_for_revenue_recovery_record_back {
($($path:ident::$connector:ident),*) => {
$(
impl api::RevenueRecoveryRecordBack for $path::$connector {}
impl
services::ConnectorIntegration<
RecoveryRecordBack,
types::RevenueRecoveryRecordBackRequest,
types::RevenueRecoveryRecordBackResponse,
> for $path::$connector
{}
)*
};
}
#[cfg(feature = "dummy_connector")]
impl<const T: u8> api::RevenueRecoveryRecordBack for connector::DummyConnector<T> {}
#[cfg(feature = "dummy_connector")]
impl<const T: u8>
services::ConnectorIntegration<
RecoveryRecordBack,
types::RevenueRecoveryRecordBackRequest,
types::RevenueRecoveryRecordBackResponse,
> for connector::DummyConnector<T>
{
}
default_imp_for_revenue_recovery_record_back!(
connector::Adyenplatform,
connector::Adyen,
connector::Ebanx,
connector::Gpayments,
connector::Netcetera,
connector::Nmi,
connector::Payone,
connector::Paypal,
connector::Plaid,
connector::Riskified,
connector::Signifyd,
connector::Stripe,
connector::Threedsecureio,
connector::Wellsfargopayout,
connector::Wise
);
macro_rules! default_imp_for_additional_revenue_recovery_call {
($($path:ident::$connector:ident),*) => {
$( impl api::RevenueRecovery for $path::$connector {}