Skip to content

Commit c04d667

Browse files
committed
feat: add support for abbandoned status in credits topup
1 parent c08a72c commit c04d667

4 files changed

Lines changed: 17 additions & 1 deletion

File tree

Explorer/Assets/DCL/MarketplaceCredits/MarketplaceCreditsAPIService/CreditsOrderStatusResponse.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public struct CreditsOrderStatusResponse
99
public const string STATUS_PROCESSING = "processing";
1010
public const string STATUS_CREDITED = "credited";
1111
public const string STATUS_FAILED = "failed";
12+
public const string STATUS_ABANDONED = "abandoned";
1213

1314
public string status;
1415

Explorer/Assets/DCL/MarketplaceCredits/Purchase/TopUp/CreditsTopUpService.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ private enum PollOutcome
1717
Failed,
1818
TimedOut,
1919
Cancelled,
20+
Abandoned
2021
}
2122

2223
private static readonly TimeSpan FOREGROUND_POLL_INTERVAL = TimeSpan.FromSeconds(1.5);
@@ -92,7 +93,7 @@ public void CancelTopUp()
9293

9394
public void AcknowledgeTerminalState()
9495
{
95-
if (CurrentStatus.Stage is CreditsTopUpStage.Credited or CreditsTopUpStage.Failed)
96+
if (CurrentStatus.Stage is CreditsTopUpStage.Credited or CreditsTopUpStage.Failed or CreditsTopUpStage.Abandoned)
9697
SetStatus(CreditsTopUpStatus.Idle());
9798
}
9899

@@ -153,6 +154,9 @@ private async UniTaskVoid RunTopUpAsync(CreditPack pack, CancellationToken ct)
153154
case PollOutcome.Failed:
154155
SetStatus(CreditsTopUpStatus.GrantFailed(pack, orderId, order.error));
155156
break;
157+
case PollOutcome.Abandoned:
158+
SetStatus(CreditsTopUpStatus.Abandoned(pack, orderId));
159+
break;
156160
}
157161
}
158162
catch (OperationCanceledException) { }
@@ -182,6 +186,8 @@ private async UniTaskVoid RunTopUpAsync(CreditPack pack, CancellationToken ct)
182186
return (PollOutcome.Credited, result.Value);
183187
case CreditsOrderStatusResponse.STATUS_FAILED:
184188
return (PollOutcome.Failed, result.Value);
189+
case CreditsOrderStatusResponse.STATUS_ABANDONED:
190+
return (PollOutcome.Abandoned, result.Value);
185191
}
186192
}
187193
else

Explorer/Assets/DCL/MarketplaceCredits/Purchase/TopUp/CreditsTopUpTypes.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public enum CreditsTopUpStage
88
PendingTimeout,
99
Credited,
1010
Failed,
11+
Abandoned,
1112
}
1213

1314
public readonly struct CreditsTopUpStatus
@@ -52,5 +53,8 @@ public static CreditsTopUpStatus CheckoutFailed(CreditPack pack, CreditsCheckout
5253

5354
public static CreditsTopUpStatus GrantFailed(CreditPack pack, string orderId, string? errorMessage) =>
5455
new (CreditsTopUpStage.Failed, pack, orderId, errorMessage: errorMessage);
56+
57+
public static CreditsTopUpStatus Abandoned(CreditPack pack, string orderId) =>
58+
new (CreditsTopUpStage.Abandoned, pack, orderId);
5559
}
5660
}

Explorer/Assets/DCL/MarketplaceCredits/Purchase/TopUp/UI/CreditsTopUpModalController.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,10 @@ private void ApplyStatus(in CreditsTopUpStatus status)
299299
viewInstance.FailedReasonText.text = reason;
300300
viewInstance.RetryButton.gameObject.SetActive(allowRetry);
301301
break;
302+
case CreditsTopUpStage.Abandoned:
303+
viewInstance.FailedReasonText.text = "Purchase cancelled — you were not charged.";
304+
viewInstance.RetryButton.gameObject.SetActive(true);
305+
break;
302306
}
303307
}
304308

@@ -357,6 +361,7 @@ private static ModalState MapStage(CreditsTopUpStage stage) =>
357361
CreditsTopUpStage.PendingTimeout => ModalState.Pending,
358362
CreditsTopUpStage.Credited => ModalState.Success,
359363
CreditsTopUpStage.Failed => ModalState.Failed,
364+
CreditsTopUpStage.Abandoned => ModalState.Failed,
360365
_ => ModalState.PackSelection,
361366
};
362367

0 commit comments

Comments
 (0)