Skip to content

Commit

Permalink
fix(payment_methods): use existing field value of nick_name in db i…
Browse files Browse the repository at this point in the history
…f not sent during request (#5105)
  • Loading branch information
Chethan-rao committed Jun 25, 2024
1 parent 2cf2123 commit ea74f3e
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 13 deletions.
23 changes: 17 additions & 6 deletions crates/router/src/core/payment_methods/cards.rs
Original file line number Diff line number Diff line change
Expand Up @@ -656,21 +656,32 @@ pub async fn add_payment_method(
.attach_printable("Failed while updating card metadata changes"))?
};

let existing_pm_data = get_card_details_without_locker_fallback(
&existing_pm,
key_store.key.peek(),
&state,
)
.await?;

let updated_card = Some(api::CardDetailFromLocker {
scheme: existing_pm.scheme.clone(),
last4_digits: Some(card.card_number.get_last4()),
issuer_country: card.card_issuing_country,
issuer_country: card
.card_issuing_country
.or(existing_pm_data.issuer_country),
card_isin: Some(card.card_number.get_card_isin()),
card_number: Some(card.card_number),
expiry_month: Some(card.card_exp_month),
expiry_year: Some(card.card_exp_year),
card_token: None,
card_fingerprint: None,
card_holder_name: card.card_holder_name,
nick_name: card.nick_name,
card_network: card.card_network,
card_issuer: card.card_issuer,
card_type: card.card_type,
card_holder_name: card
.card_holder_name
.or(existing_pm_data.card_holder_name),
nick_name: card.nick_name.or(existing_pm_data.nick_name),
card_network: card.card_network.or(existing_pm_data.card_network),
card_issuer: card.card_issuer.or(existing_pm_data.card_issuer),
card_type: card.card_type.or(existing_pm_data.card_type),
saved_to_locker: true,
});

Expand Down
27 changes: 20 additions & 7 deletions crates/router/src/core/payments/tokenization.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use common_utils::{
id_type, pii,
};
use error_stack::{report, ResultExt};
use masking::ExposeInterface;
use masking::{ExposeInterface, PeekInterface};
use router_env::{instrument, metrics::add_attributes, tracing};

use super::helpers;
Expand Down Expand Up @@ -468,21 +468,34 @@ where
))?
};

let existing_pm_data = payment_methods::cards::get_card_details_without_locker_fallback(
&existing_pm,
key_store.key.peek(),
state,
)
.await?;

let updated_card = Some(CardDetailFromLocker {
scheme: existing_pm.scheme.clone(),
last4_digits: Some(card.card_number.get_last4()),
issuer_country: card.card_issuing_country,
issuer_country: card
.card_issuing_country
.or(existing_pm_data.issuer_country),
card_isin: Some(card.card_number.get_card_isin()),
card_number: Some(card.card_number),
expiry_month: Some(card.card_exp_month),
expiry_year: Some(card.card_exp_year),
card_token: None,
card_fingerprint: None,
card_holder_name: card.card_holder_name,
nick_name: card.nick_name,
card_network: card.card_network,
card_issuer: card.card_issuer,
card_type: card.card_type,
card_holder_name: card
.card_holder_name
.or(existing_pm_data.card_holder_name),
nick_name: card.nick_name.or(existing_pm_data.nick_name),
card_network: card
.card_network
.or(existing_pm_data.card_network),
card_issuer: card.card_issuer.or(existing_pm_data.card_issuer),
card_type: card.card_type.or(existing_pm_data.card_type),
saved_to_locker: true,
});

Expand Down

0 comments on commit ea74f3e

Please sign in to comment.