fix(payouts): update payout's state in app after DB operations (#4341)

This commit is contained in:
Kashif
2024-04-12 12:59:06 +05:30
committed by GitHub
parent c980f01691
commit 0fe93d65b4
2 changed files with 44 additions and 42 deletions

View File

@ -50,7 +50,7 @@ pub async fn make_payout_method_data<'a>(
merchant_id: &str,
payout_type: Option<&api_enums::PayoutType>,
merchant_key_store: &domain::MerchantKeyStore,
payout_data: Option<&PayoutData>,
payout_data: Option<&mut PayoutData>,
storage_scheme: storage::enums::MerchantStorageScheme,
) -> RouterResult<Option<api::PayoutMethodData>> {
let db = &*state.store;
@ -168,15 +168,16 @@ pub async fn make_payout_method_data<'a>(
let updated_payout_attempt = storage::PayoutAttemptUpdate::PayoutTokenUpdate {
payout_token: lookup_key,
};
db.update_payout_attempt(
&payout_data.payout_attempt,
updated_payout_attempt,
&payout_data.payouts,
storage_scheme,
)
.await
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("Error updating token in payout attempt")?;
payout_data.payout_attempt = db
.update_payout_attempt(
&payout_data.payout_attempt,
updated_payout_attempt,
&payout_data.payouts,
storage_scheme,
)
.await
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("Error updating token in payout attempt")?;
}
Ok(Some(payout_method.clone()))
}
@ -188,7 +189,7 @@ pub async fn make_payout_method_data<'a>(
pub async fn save_payout_data_to_locker(
state: &AppState,
payout_data: &PayoutData,
payout_data: &mut PayoutData,
payout_method_data: &api::PayoutMethodData,
merchant_account: &domain::MerchantAccount,
key_store: &domain::MerchantKeyStore,
@ -556,15 +557,16 @@ pub async fn save_payout_data_to_locker(
let updated_payout = storage::PayoutsUpdate::PayoutMethodIdUpdate {
payout_method_id: stored_resp.card_reference.to_owned(),
};
db.update_payout(
&payout_data.payouts,
updated_payout,
payout_attempt,
merchant_account.storage_scheme,
)
.await
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("Error updating payouts in saved payout method")?;
payout_data.payouts = db
.update_payout(
&payout_data.payouts,
updated_payout,
payout_attempt,
merchant_account.storage_scheme,
)
.await
.change_context(errors::ApiErrorResponse::InternalServerError)
.attach_printable("Error updating payouts in saved payout method")?;
Ok(())
}