From 7274fd70c6bb4051a0af97da087c4e10bf62fdb9 Mon Sep 17 00:00:00 2001 From: Nishant Joshi Date: Fri, 23 Dec 2022 01:16:50 +0530 Subject: [PATCH] fix: fix mandate behaviour post merge (#221) --- crates/router/src/core/mandate.rs | 6 ++++-- crates/router/src/core/payments/flows/authorize_flow.rs | 4 ++++ crates/router/src/core/payments/flows/verfiy_flow.rs | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/crates/router/src/core/mandate.rs b/crates/router/src/core/mandate.rs index c087421c41..3fbdebdaea 100644 --- a/crates/router/src/core/mandate.rs +++ b/crates/router/src/core/mandate.rs @@ -1,5 +1,5 @@ use error_stack::{report, ResultExt}; -use router_env::{tracing, tracing::instrument}; +use router_env::{logger, tracing, tracing::instrument}; use storage_models::enums as storage_enums; use super::payments::helpers; @@ -152,11 +152,12 @@ where if let Some(new_mandate_data) = helpers::generate_mandate( resp.merchant_id.clone(), resp.connector.clone(), - None, + resp.request.get_setup_mandate_details().map(Clone::clone), maybe_customer, payment_method_id, mandate_reference, ) { + logger::error!("{:?}", new_mandate_data); resp.request .set_mandate_id(api_models::payments::MandateIds { mandate_id: new_mandate_data.mandate_id.clone(), @@ -185,4 +186,5 @@ pub trait MandateBehaviour { fn get_mandate_id(&self) -> Option<&api_models::payments::MandateIds>; fn set_mandate_id(&mut self, new_mandate_id: api_models::payments::MandateIds); fn get_payment_method_data(&self) -> api_models::payments::PaymentMethod; + fn get_setup_mandate_details(&self) -> Option<&api_models::payments::MandateData>; } diff --git a/crates/router/src/core/payments/flows/authorize_flow.rs b/crates/router/src/core/payments/flows/authorize_flow.rs index d8a80230c5..2d9189f81b 100644 --- a/crates/router/src/core/payments/flows/authorize_flow.rs +++ b/crates/router/src/core/payments/flows/authorize_flow.rs @@ -120,6 +120,10 @@ impl mandate::MandateBehaviour for types::PaymentsAuthorizeData { fn get_setup_future_usage(&self) -> Option { self.setup_future_usage } + fn get_setup_mandate_details(&self) -> Option<&api_models::payments::MandateData> { + self.setup_mandate_details.as_ref() + } + fn set_mandate_id(&mut self, new_mandate_id: api_models::payments::MandateIds) { self.mandate_id = Some(new_mandate_id); } diff --git a/crates/router/src/core/payments/flows/verfiy_flow.rs b/crates/router/src/core/payments/flows/verfiy_flow.rs index bf7805d020..e16caf0a4a 100644 --- a/crates/router/src/core/payments/flows/verfiy_flow.rs +++ b/crates/router/src/core/payments/flows/verfiy_flow.rs @@ -109,4 +109,8 @@ impl mandate::MandateBehaviour for types::VerifyRequestData { fn get_payment_method_data(&self) -> api_models::payments::PaymentMethod { self.payment_method_data.clone() } + + fn get_setup_mandate_details(&self) -> Option<&api_models::payments::MandateData> { + self.setup_mandate_details.as_ref() + } }