aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/tip.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-05-30 15:58:28 +0200
committerFlorian Dold <florian@dold.me>2023-05-30 15:58:28 +0200
commit2a92ca8732195a3a317a0edc155efc0b72351272 (patch)
tree0a9acdb7014b3a4018f904ad307b32f7eb40f848 /packages/taler-wallet-core/src/operations/tip.ts
parent000359a5e746d9b704b05f2f3eb8442e10a31f75 (diff)
downloadwallet-core-2a92ca8732195a3a317a0edc155efc0b72351272.tar.xz
wallet-core: report possible actions in transactions list
Diffstat (limited to 'packages/taler-wallet-core/src/operations/tip.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/tip.ts21
1 files changed, 20 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts
index 0bee2b406..02c933cba 100644
--- a/packages/taler-wallet-core/src/operations/tip.ts
+++ b/packages/taler-wallet-core/src/operations/tip.ts
@@ -36,6 +36,7 @@ import {
TalerPreciseTimestamp,
TalerProtocolTimestamp,
TipPlanchetDetail,
+ TransactionAction,
TransactionMajorState,
TransactionMinorState,
TransactionState,
@@ -111,6 +112,24 @@ export function computeTipTransactionStatus(
}
}
+
+export function computeTipTransactionActions(
+ tipRecord: TipRecord,
+): TransactionAction[] {
+ switch (tipRecord.status) {
+ case TipRecordStatus.Done:
+ return [TransactionAction.Delete];
+ case TipRecordStatus.Aborted:
+ return [TransactionAction.Delete];
+ case TipRecordStatus.PendingPickup:
+ return [TransactionAction.Suspend, TransactionAction.Fail];
+ case TipRecordStatus.SuspendidPickup:
+ return [TransactionAction.Resume, TransactionAction.Fail];
+ default:
+ assertUnreachable(tipRecord.status);
+ }
+}
+
export async function prepareTip(
ws: InternalWalletState,
talerTipUri: string,
@@ -526,7 +545,7 @@ export async function resumeTipTransaction(
notifyTransition(ws, transactionId, transitionInfo);
}
-export async function cancelAbortingTipTransaction(
+export async function failTipTransaction(
ws: InternalWalletState,
walletTipId: string,
): Promise<void> {