From a12923723f6e1aed82205883d22445cb4e1ffb90 Mon Sep 17 00:00:00 2001 From: Kartikeya Hegde Date: Thu, 22 Dec 2022 11:21:15 +0530 Subject: [PATCH] fix: fix address being null after cancel (#202) --- .../payments/operations/payment_cancel.rs | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/crates/router/src/core/payments/operations/payment_cancel.rs b/crates/router/src/core/payments/operations/payment_cancel.rs index 030e879601..64115245e6 100644 --- a/crates/router/src/core/payments/operations/payment_cancel.rs +++ b/crates/router/src/core/payments/operations/payment_cancel.rs @@ -9,13 +9,14 @@ use super::{BoxedOperation, Domain, GetTracker, Operation, UpdateTracker, Valida use crate::{ core::{ errors::{self, RouterResult, StorageErrorExt}, - payments::{operations, CustomerDetails, PaymentAddress, PaymentData}, + payments::{helpers, operations, CustomerDetails, PaymentAddress, PaymentData}, }, db::StorageInterface, routes::AppState, types::{ api::{self, PaymentIdTypeExt}, storage::{self, enums, Customer}, + transformers::ForeignInto, }, utils::OptionExt, }; @@ -63,6 +64,23 @@ impl GetTracker, api::PaymentsCancelRequest> error.to_not_found_response(errors::ApiErrorResponse::PaymentNotFound) })?; + let shipping_address = helpers::get_address_for_payment_request( + db, + None, + payment_intent.shipping_address_id.as_deref(), + merchant_id, + &payment_intent.customer_id, + ) + .await?; + let billing_address = helpers::get_address_for_payment_request( + db, + None, + payment_intent.billing_address_id.as_deref(), + merchant_id, + &payment_intent.customer_id, + ) + .await?; + let connector_response = db .find_connector_response_by_payment_id_merchant_id_txn_id( &payment_attempt.payment_id, @@ -98,7 +116,10 @@ impl GetTracker, api::PaymentsCancelRequest> mandate_id: None, setup_mandate: None, token: None, - address: PaymentAddress::default(), + address: PaymentAddress { + shipping: shipping_address.as_ref().map(|a| a.foreign_into()), + billing: billing_address.as_ref().map(|a| a.foreign_into()), + }, confirm: None, payment_method_data: None, force_sync: None,