mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-27 11:24:45 +08:00
fix(router): [worldpayvantiv] dispute validations and statuses (#8862)
Co-authored-by: hyperswitch-bot[bot] <148525504+hyperswitch-bot[bot]@users.noreply.github.com>
This commit is contained in:
@ -276,8 +276,10 @@ pub async fn accept_dispute(
|
||||
core_utils::validate_profile_id_from_auth_layer(profile_id, &dispute)?;
|
||||
let dispute_id = dispute.dispute_id.clone();
|
||||
common_utils::fp_utils::when(
|
||||
!(dispute.dispute_stage == storage_enums::DisputeStage::Dispute
|
||||
&& dispute.dispute_status == storage_enums::DisputeStatus::DisputeOpened),
|
||||
!core_utils::should_proceed_with_accept_dispute(
|
||||
dispute.dispute_stage,
|
||||
dispute.dispute_status,
|
||||
),
|
||||
|| {
|
||||
metrics::ACCEPT_DISPUTE_STATUS_VALIDATION_FAILURE_METRIC.add(1, &[]);
|
||||
Err(errors::ApiErrorResponse::DisputeStatusValidationFailed {
|
||||
|
||||
@ -929,6 +929,9 @@ pub fn validate_dispute_status(
|
||||
DisputeStatus::DisputeChallenged
|
||||
| DisputeStatus::DisputeWon
|
||||
| DisputeStatus::DisputeLost
|
||||
| DisputeStatus::DisputeAccepted
|
||||
| DisputeStatus::DisputeCancelled
|
||||
| DisputeStatus::DisputeExpired
|
||||
),
|
||||
DisputeStatus::DisputeWon => matches!(dispute_status, DisputeStatus::DisputeWon),
|
||||
DisputeStatus::DisputeLost => matches!(dispute_status, DisputeStatus::DisputeLost),
|
||||
@ -2614,12 +2617,27 @@ pub fn should_proceed_with_submit_evidence(
|
||||
dispute_stage: DisputeStage,
|
||||
dispute_status: DisputeStatus,
|
||||
) -> bool {
|
||||
matches!(dispute_stage, DisputeStage::DisputeReversal)
|
||||
|| matches!(
|
||||
dispute_status,
|
||||
DisputeStatus::DisputeExpired
|
||||
| DisputeStatus::DisputeCancelled
|
||||
| DisputeStatus::DisputeWon
|
||||
| DisputeStatus::DisputeLost,
|
||||
)
|
||||
matches!(
|
||||
dispute_stage,
|
||||
DisputeStage::PreDispute
|
||||
| DisputeStage::Dispute
|
||||
| DisputeStage::PreArbitration
|
||||
| DisputeStage::Arbitration
|
||||
) && matches!(
|
||||
dispute_status,
|
||||
DisputeStatus::DisputeOpened | DisputeStatus::DisputeChallenged
|
||||
)
|
||||
}
|
||||
|
||||
pub fn should_proceed_with_accept_dispute(
|
||||
dispute_stage: DisputeStage,
|
||||
dispute_status: DisputeStatus,
|
||||
) -> bool {
|
||||
matches!(
|
||||
dispute_stage,
|
||||
DisputeStage::PreDispute | DisputeStage::Dispute | DisputeStage::PreArbitration
|
||||
) && matches!(
|
||||
dispute_status,
|
||||
DisputeStatus::DisputeChallenged | DisputeStatus::DisputeOpened
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user