mirror of
				https://github.com/juspay/hyperswitch.git
				synced 2025-10-31 10:06:32 +08:00 
			
		
		
		
	feat(connector): [Chargebee] Add record back support for chargebee (#7505)
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:
		| @ -1314,6 +1314,7 @@ impl ConnectorAuthTypeAndMetadataValidation<'_> { | ||||
|             } | ||||
|             api_enums::Connector::Chargebee => { | ||||
|                 chargebee::transformers::ChargebeeAuthType::try_from(self.auth_type)?; | ||||
|                 chargebee::transformers::ChargebeeMetadata::try_from(self.connector_meta_data)?; | ||||
|                 Ok(()) | ||||
|             } | ||||
|             api_enums::Connector::Checkout => { | ||||
|  | ||||
| @ -12,11 +12,14 @@ pub mod session_update_flow; | ||||
| pub mod setup_mandate_flow; | ||||
|  | ||||
| use async_trait::async_trait; | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| use hyperswitch_domain_models::router_flow_types::{ | ||||
|     revenue_recovery::RecoveryRecordBack, GetAdditionalRevenueRecoveryDetails, | ||||
| }; | ||||
| use hyperswitch_domain_models::{ | ||||
|     mandates::CustomerAcceptance, | ||||
|     router_flow_types::{ | ||||
|         revenue_recovery::RecoveryRecordBack, Authenticate, AuthenticationConfirmation, | ||||
|         GetAdditionalRevenueRecoveryDetails, PostAuthenticate, PreAuthenticate, | ||||
|         Authenticate, AuthenticationConfirmation, PostAuthenticate, PreAuthenticate, | ||||
|     }, | ||||
|     router_request_types::PaymentsCaptureData, | ||||
| }; | ||||
| @ -2216,6 +2219,7 @@ fn handle_post_capture_response( | ||||
|     } | ||||
| } | ||||
|  | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| macro_rules! default_imp_for_revenue_recovery_record_back { | ||||
|     ($($path:ident::$connector:ident),*) => { | ||||
|         $( | ||||
| @ -2231,8 +2235,10 @@ macro_rules! default_imp_for_revenue_recovery_record_back { | ||||
|     }; | ||||
| } | ||||
|  | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| #[cfg(feature = "dummy_connector")] | ||||
| impl<const T: u8> api::RevenueRecoveryRecordBack for connector::DummyConnector<T> {} | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| #[cfg(feature = "dummy_connector")] | ||||
| impl<const T: u8> | ||||
|     services::ConnectorIntegration< | ||||
| @ -2242,7 +2248,7 @@ impl<const T: u8> | ||||
|     > for connector::DummyConnector<T> | ||||
| { | ||||
| } | ||||
|  | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| default_imp_for_revenue_recovery_record_back!( | ||||
|     connector::Adyenplatform, | ||||
|     connector::Ebanx, | ||||
| @ -2259,9 +2265,36 @@ default_imp_for_revenue_recovery_record_back!( | ||||
|     connector::Wise | ||||
| ); | ||||
|  | ||||
| macro_rules! default_imp_for_additional_revenue_recovery_call { | ||||
| macro_rules! default_imp_for_revenue_recovery { | ||||
|     ($($path:ident::$connector:ident),*) => { | ||||
|         $(  impl api::RevenueRecovery for $path::$connector {} | ||||
|     )* | ||||
|     }; | ||||
| } | ||||
|  | ||||
| #[cfg(feature = "dummy_connector")] | ||||
| impl<const T: u8> api::RevenueRecovery for connector::DummyConnector<T> {} | ||||
|  | ||||
| default_imp_for_revenue_recovery! { | ||||
|     connector::Adyenplatform, | ||||
|     connector::Ebanx, | ||||
|     connector::Gpayments, | ||||
|     connector::Netcetera, | ||||
|     connector::Nmi, | ||||
|     connector::Payone, | ||||
|     connector::Plaid, | ||||
|     connector::Riskified, | ||||
|     connector::Signifyd, | ||||
|     connector::Stripe, | ||||
|     connector::Threedsecureio, | ||||
|     connector::Wellsfargopayout, | ||||
|     connector::Wise | ||||
| } | ||||
|  | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| macro_rules! default_imp_for_additional_revenue_recovery_call { | ||||
|     ($($path:ident::$connector:ident),*) => { | ||||
|         $( | ||||
|             impl api::AdditionalRevenueRecovery for $path::$connector {} | ||||
|             impl | ||||
|             services::ConnectorIntegration< | ||||
| @ -2274,9 +2307,10 @@ macro_rules! default_imp_for_additional_revenue_recovery_call { | ||||
|     }; | ||||
| } | ||||
|  | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| #[cfg(feature = "dummy_connector")] | ||||
| impl<const T: u8> api::RevenueRecovery for connector::DummyConnector<T> {} | ||||
| impl<const T: u8> api::AdditionalRevenueRecovery for connector::DummyConnector<T> {} | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| #[cfg(feature = "dummy_connector")] | ||||
| impl<const T: u8> | ||||
|     services::ConnectorIntegration< | ||||
| @ -2287,6 +2321,7 @@ impl<const T: u8> | ||||
| { | ||||
| } | ||||
|  | ||||
| #[cfg(all(feature = "v2", feature = "revenue_recovery"))] | ||||
| default_imp_for_additional_revenue_recovery_call!( | ||||
|     connector::Adyenplatform, | ||||
|     connector::Ebanx, | ||||
|  | ||||
| @ -10,8 +10,8 @@ use hyperswitch_domain_models::{ | ||||
|     router_data_v2::{ | ||||
|         flow_common_types::{ | ||||
|             AccessTokenFlowData, DisputesFlowData, ExternalAuthenticationFlowData, FilesFlowData, | ||||
|             MandateRevokeFlowData, PaymentFlowData, RefundFlowData, UasFlowData, | ||||
|             WebhookSourceVerifyData, | ||||
|             MandateRevokeFlowData, PaymentFlowData, RefundFlowData, RevenueRecoveryRecordBackData, | ||||
|             UasFlowData, WebhookSourceVerifyData, | ||||
|         }, | ||||
|         RouterDataV2, | ||||
|     }, | ||||
| @ -715,6 +715,42 @@ impl<T, Req: Clone, Resp: Clone> RouterDataConversion<T, Req, Resp> | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl<T, Req: Clone, Resp: Clone> RouterDataConversion<T, Req, Resp> | ||||
|     for RevenueRecoveryRecordBackData | ||||
| { | ||||
|     fn from_old_router_data( | ||||
|         old_router_data: &RouterData<T, Req, Resp>, | ||||
|     ) -> errors::CustomResult<RouterDataV2<T, Self, Req, Resp>, errors::ConnectorError> | ||||
|     where | ||||
|         Self: Sized, | ||||
|     { | ||||
|         let resource_common_data = Self {}; | ||||
|         Ok(RouterDataV2 { | ||||
|             flow: std::marker::PhantomData, | ||||
|             tenant_id: old_router_data.tenant_id.clone(), | ||||
|             resource_common_data, | ||||
|             connector_auth_type: old_router_data.connector_auth_type.clone(), | ||||
|             request: old_router_data.request.clone(), | ||||
|             response: old_router_data.response.clone(), | ||||
|         }) | ||||
|     } | ||||
|  | ||||
|     fn to_old_router_data( | ||||
|         new_router_data: RouterDataV2<T, Self, Req, Resp>, | ||||
|     ) -> errors::CustomResult<RouterData<T, Req, Resp>, errors::ConnectorError> | ||||
|     where | ||||
|         Self: Sized, | ||||
|     { | ||||
|         let router_data = get_default_router_data( | ||||
|             new_router_data.tenant_id.clone(), | ||||
|             "recovery_record_back", | ||||
|             new_router_data.request, | ||||
|             new_router_data.response, | ||||
|         ); | ||||
|         Ok(router_data) | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl<T, Req: Clone, Resp: Clone> RouterDataConversion<T, Req, Resp> for UasFlowData { | ||||
|     fn from_old_router_data( | ||||
|         old_router_data: &RouterData<T, Req, Resp>, | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 chikke srujan
					chikke srujan