diff options
author | Florian Dold <florian@dold.me> | 2023-05-02 13:24:51 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-05-02 13:24:51 +0200 |
commit | 23fca6d8677a1e88dad426691fbe1033595f16a3 (patch) | |
tree | 11e68bb93df085d10e12586d47d6c8157211bc06 /packages/taler-wallet-core/src/operations/pay-merchant.ts | |
parent | 16d30adf0d57f6d954230c437e56e8a8700ef2ae (diff) |
wallet-core: report pay-merchant DD37 state
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay-merchant.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/pay-merchant.ts | 63 |
1 files changed, 61 insertions, 2 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay-merchant.ts b/packages/taler-wallet-core/src/operations/pay-merchant.ts index e6ade08aa..d2713dc9d 100644 --- a/packages/taler-wallet-core/src/operations/pay-merchant.ts +++ b/packages/taler-wallet-core/src/operations/pay-merchant.ts @@ -71,6 +71,8 @@ import { TalerErrorDetail, TalerProtocolTimestamp, TalerProtocolViolationError, + TransactionMajorState, + TransactionMinorState, TransactionState, TransactionType, URL, @@ -2477,8 +2479,65 @@ export async function abortPay( }); } -export function computeWithdrawalTransactionStatus( +export function computePayMerchantTransactionState( purchaseRecord: PurchaseRecord, ): TransactionState { - throw Error("not implemented"); + switch (purchaseRecord.purchaseStatus) { + case PurchaseStatus.DownloadingProposal: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.ClaimProposal, + }; + case PurchaseStatus.Paid: + return { + major: TransactionMajorState.Done, + }; + case PurchaseStatus.PaymentAbortFinished: + return { + major: TransactionMajorState.Aborted, + }; + case PurchaseStatus.Proposed: + return { + major: TransactionMajorState.Dialog, + }; + case PurchaseStatus.ProposalDownloadFailed: + return { + major: TransactionMajorState.Failed, + minor: TransactionMinorState.ClaimProposal, + }; + case PurchaseStatus.RepurchaseDetected: + return { + major: TransactionMajorState.Failed, + minor: TransactionMinorState.Repurchase, + }; + case PurchaseStatus.AbortingWithRefund: + return { + major: TransactionMajorState.Aborting, + }; + case PurchaseStatus.Paying: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.Pay, + }; + case PurchaseStatus.PayingReplay: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.RebindSession, + }; + case PurchaseStatus.ProposalRefused: + return { + major: TransactionMajorState.Failed, + minor: TransactionMinorState.Refused, + }; + case PurchaseStatus.QueryingAutoRefund: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.AutoRefund, + }; + case PurchaseStatus.QueryingRefund: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.CheckRefunds, + }; + } } |