mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-30 01:27:31 +08:00
fix(payment_method): do not save card in locker in case of error from connector (#1341)
This commit is contained in:
@ -31,6 +31,8 @@ pub async fn save_payment_method<F: Clone, FData>(
|
||||
where
|
||||
FData: mandate::MandateBehaviour,
|
||||
{
|
||||
match resp.response {
|
||||
Ok(_) => {
|
||||
let db = &*state.store;
|
||||
let token_store = state
|
||||
.conf
|
||||
@ -75,8 +77,10 @@ where
|
||||
.await;
|
||||
match existing_pm {
|
||||
Ok(pm) => {
|
||||
let pm_metadata =
|
||||
create_payment_method_metadata(pm.metadata.as_ref(), connector_token)?;
|
||||
let pm_metadata = create_payment_method_metadata(
|
||||
pm.metadata.as_ref(),
|
||||
connector_token,
|
||||
)?;
|
||||
if let Some(metadata) = pm_metadata {
|
||||
payment_methods::cards::update_payment_method(db, pm, metadata)
|
||||
.await
|
||||
@ -86,7 +90,9 @@ where
|
||||
}
|
||||
Err(error) => {
|
||||
match error.current_context() {
|
||||
errors::StorageError::DatabaseError(err) => match err.current_context() {
|
||||
errors::StorageError::DatabaseError(err) => match err
|
||||
.current_context()
|
||||
{
|
||||
storage_models::errors::DatabaseError::NotFound => {
|
||||
let pm_metadata =
|
||||
create_payment_method_metadata(None, connector_token)?;
|
||||
@ -99,12 +105,20 @@ where
|
||||
pm_metadata,
|
||||
)
|
||||
.await
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.change_context(
|
||||
errors::ApiErrorResponse::InternalServerError,
|
||||
)
|
||||
.attach_printable("Failed to add payment method in db")
|
||||
}
|
||||
_ => Err(report!(errors::ApiErrorResponse::InternalServerError)),
|
||||
_ => {
|
||||
Err(report!(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable(
|
||||
"Database Error while finding payment method",
|
||||
))
|
||||
}
|
||||
},
|
||||
_ => Err(report!(errors::ApiErrorResponse::InternalServerError)),
|
||||
_ => Err(report!(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable("Error while finding payment method")),
|
||||
}?;
|
||||
}
|
||||
};
|
||||
@ -127,6 +141,9 @@ where
|
||||
None
|
||||
};
|
||||
Ok(pm_id)
|
||||
}
|
||||
Err(_) => Ok(None),
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn save_in_locker(
|
||||
|
||||
Reference in New Issue
Block a user