mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 17:47:54 +08:00
refactor(router): add revenue_recovery_metadata to payment intent in diesel and api model for v2 flow (#7176)
Co-authored-by: Nishanth Challa <nishanth.challa@Nishanth-Challa-C0WGKCFHLF.local> Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
fbbbe3eb90
commit
2ee22cdf8a
@ -40,10 +40,17 @@ use api_models::payments::{
|
||||
RecurringPaymentIntervalUnit as ApiRecurringPaymentIntervalUnit,
|
||||
RedirectResponse as ApiRedirectResponse,
|
||||
};
|
||||
#[cfg(feature = "v2")]
|
||||
use api_models::payments::{
|
||||
BillingConnectorPaymentDetails as ApiBillingConnectorPaymentDetails,
|
||||
PaymentRevenueRecoveryMetadata as ApiRevenueRecoveryMetadata,
|
||||
};
|
||||
use diesel_models::types::{
|
||||
ApplePayRecurringDetails, ApplePayRegularBillingDetails, FeatureMetadata,
|
||||
OrderDetailsWithAmount, RecurringPaymentIntervalUnit, RedirectResponse,
|
||||
};
|
||||
#[cfg(feature = "v2")]
|
||||
use diesel_models::types::{BillingConnectorPaymentDetails, PaymentRevenueRecoveryMetadata};
|
||||
|
||||
#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)]
|
||||
pub enum RemoteStorageObject<T: ForeignIDRef> {
|
||||
@ -78,6 +85,7 @@ pub trait ApiModelToDieselModelConvertor<F> {
|
||||
fn convert_back(self) -> F;
|
||||
}
|
||||
|
||||
#[cfg(feature = "v1")]
|
||||
impl ApiModelToDieselModelConvertor<ApiFeatureMetadata> for FeatureMetadata {
|
||||
fn convert_from(from: ApiFeatureMetadata) -> Self {
|
||||
let ApiFeatureMetadata {
|
||||
@ -85,6 +93,7 @@ impl ApiModelToDieselModelConvertor<ApiFeatureMetadata> for FeatureMetadata {
|
||||
search_tags,
|
||||
apple_pay_recurring_details,
|
||||
} = from;
|
||||
|
||||
Self {
|
||||
redirect_response: redirect_response.map(RedirectResponse::convert_from),
|
||||
search_tags,
|
||||
@ -99,6 +108,7 @@ impl ApiModelToDieselModelConvertor<ApiFeatureMetadata> for FeatureMetadata {
|
||||
search_tags,
|
||||
apple_pay_recurring_details,
|
||||
} = self;
|
||||
|
||||
ApiFeatureMetadata {
|
||||
redirect_response: redirect_response
|
||||
.map(|redirect_response| redirect_response.convert_back()),
|
||||
@ -109,6 +119,46 @@ impl ApiModelToDieselModelConvertor<ApiFeatureMetadata> for FeatureMetadata {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
impl ApiModelToDieselModelConvertor<ApiFeatureMetadata> for FeatureMetadata {
|
||||
fn convert_from(from: ApiFeatureMetadata) -> Self {
|
||||
let ApiFeatureMetadata {
|
||||
redirect_response,
|
||||
search_tags,
|
||||
apple_pay_recurring_details,
|
||||
payment_revenue_recovery_metadata,
|
||||
} = from;
|
||||
|
||||
Self {
|
||||
redirect_response: redirect_response.map(RedirectResponse::convert_from),
|
||||
search_tags,
|
||||
apple_pay_recurring_details: apple_pay_recurring_details
|
||||
.map(ApplePayRecurringDetails::convert_from),
|
||||
payment_revenue_recovery_metadata: payment_revenue_recovery_metadata
|
||||
.map(PaymentRevenueRecoveryMetadata::convert_from),
|
||||
}
|
||||
}
|
||||
|
||||
fn convert_back(self) -> ApiFeatureMetadata {
|
||||
let Self {
|
||||
redirect_response,
|
||||
search_tags,
|
||||
apple_pay_recurring_details,
|
||||
payment_revenue_recovery_metadata,
|
||||
} = self;
|
||||
|
||||
ApiFeatureMetadata {
|
||||
redirect_response: redirect_response
|
||||
.map(|redirect_response| redirect_response.convert_back()),
|
||||
search_tags,
|
||||
apple_pay_recurring_details: apple_pay_recurring_details
|
||||
.map(|value| value.convert_back()),
|
||||
payment_revenue_recovery_metadata: payment_revenue_recovery_metadata
|
||||
.map(|value| value.convert_back()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ApiModelToDieselModelConvertor<ApiRedirectResponse> for RedirectResponse {
|
||||
fn convert_from(from: ApiRedirectResponse) -> Self {
|
||||
let ApiRedirectResponse {
|
||||
@ -204,6 +254,56 @@ impl ApiModelToDieselModelConvertor<ApiApplePayRecurringDetails> for ApplePayRec
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
impl ApiModelToDieselModelConvertor<ApiRevenueRecoveryMetadata> for PaymentRevenueRecoveryMetadata {
|
||||
fn convert_from(from: ApiRevenueRecoveryMetadata) -> Self {
|
||||
Self {
|
||||
total_retry_count: from.total_retry_count,
|
||||
payment_connector_transmission: from.payment_connector_transmission,
|
||||
billing_connector_id: from.billing_connector_id,
|
||||
active_attempt_payment_connector_id: from.active_attempt_payment_connector_id,
|
||||
billing_connector_payment_details: BillingConnectorPaymentDetails::convert_from(
|
||||
from.billing_connector_payment_details,
|
||||
),
|
||||
payment_method_type: from.payment_method_type,
|
||||
payment_method_subtype: from.payment_method_subtype,
|
||||
}
|
||||
}
|
||||
|
||||
fn convert_back(self) -> ApiRevenueRecoveryMetadata {
|
||||
ApiRevenueRecoveryMetadata {
|
||||
total_retry_count: self.total_retry_count,
|
||||
payment_connector_transmission: self.payment_connector_transmission,
|
||||
billing_connector_id: self.billing_connector_id,
|
||||
active_attempt_payment_connector_id: self.active_attempt_payment_connector_id,
|
||||
billing_connector_payment_details: self
|
||||
.billing_connector_payment_details
|
||||
.convert_back(),
|
||||
payment_method_type: self.payment_method_type,
|
||||
payment_method_subtype: self.payment_method_subtype,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "v2")]
|
||||
impl ApiModelToDieselModelConvertor<ApiBillingConnectorPaymentDetails>
|
||||
for BillingConnectorPaymentDetails
|
||||
{
|
||||
fn convert_from(from: ApiBillingConnectorPaymentDetails) -> Self {
|
||||
Self {
|
||||
payment_processor_token: from.payment_processor_token,
|
||||
connector_customer_id: from.connector_customer_id,
|
||||
}
|
||||
}
|
||||
|
||||
fn convert_back(self) -> ApiBillingConnectorPaymentDetails {
|
||||
ApiBillingConnectorPaymentDetails {
|
||||
payment_processor_token: self.payment_processor_token,
|
||||
connector_customer_id: self.connector_customer_id,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ApiModelToDieselModelConvertor<ApiOrderDetailsWithAmount> for OrderDetailsWithAmount {
|
||||
fn convert_from(from: ApiOrderDetailsWithAmount) -> Self {
|
||||
let ApiOrderDetailsWithAmount {
|
||||
|
||||
Reference in New Issue
Block a user