aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/transactions.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-11-02 12:50:34 +0100
committerFlorian Dold <florian@dold.me>2022-11-02 12:50:34 +0100
commit87bc4a6fcd3b274f25ffe9a74196aa5f4f586b7e (patch)
treef2ce9ab1636cdc5de58ec11d74df1ba2cec71a3c /packages/taler-wallet-core/src/operations/transactions.ts
parentaab3f917c42c9c38b0d13b69380075e5a0505720 (diff)
downloadwallet-core-87bc4a6fcd3b274f25ffe9a74196aa5f4f586b7e.tar.xz
wallet-core: fix recoup issue
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/transactions.ts54
1 files changed, 29 insertions, 25 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts
index 3f1d0a224..54cb84926 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -51,6 +51,7 @@ import {
WalletContractData,
} from "../db.js";
import { InternalWalletState } from "../internal-wallet-state.js";
+import { assertUnreachable } from "../util/assertUnreachable.js";
import { checkDbInvariant } from "../util/invariants.js";
import { RetryTags } from "../util/retries.js";
import {
@@ -803,33 +804,36 @@ export async function getTransactions(
const opId = RetryTags.forWithdrawal(wsr);
const ort = await tx.operationRetries.get(opId);
- if (wsr.wgInfo.withdrawalType === WithdrawalRecordType.PeerPullCredit) {
- transactions.push(buildTransactionForPullPaymentCredit(wsr, ort));
- return;
- } else if (
- wsr.wgInfo.withdrawalType === WithdrawalRecordType.PeerPushCredit
- ) {
- transactions.push(buildTransactionForPushPaymentCredit(wsr, ort));
- return;
- } else if (
- wsr.wgInfo.withdrawalType === WithdrawalRecordType.BankIntegrated
- ) {
- transactions.push(
- buildTransactionForBankIntegratedWithdraw(wsr, ort),
- );
- } else {
- const exchangeDetails = await getExchangeDetails(
- tx,
- wsr.exchangeBaseUrl,
- );
- if (!exchangeDetails) {
- // FIXME: report somehow
+ switch (wsr.wgInfo.withdrawalType) {
+ case WithdrawalRecordType.PeerPullCredit:
+ transactions.push(buildTransactionForPullPaymentCredit(wsr, ort));
return;
- }
+ case WithdrawalRecordType.PeerPushCredit:
+ transactions.push(buildTransactionForPushPaymentCredit(wsr, ort));
+ return;
+ case WithdrawalRecordType.BankIntegrated:
+ transactions.push(
+ buildTransactionForBankIntegratedWithdraw(wsr, ort),
+ );
+ return;
+ case WithdrawalRecordType.BankManual: {
+ const exchangeDetails = await getExchangeDetails(
+ tx,
+ wsr.exchangeBaseUrl,
+ );
+ if (!exchangeDetails) {
+ // FIXME: report somehow
+ return;
+ }
- transactions.push(
- buildTransactionForManualWithdraw(wsr, exchangeDetails, ort),
- );
+ transactions.push(
+ buildTransactionForManualWithdraw(wsr, exchangeDetails, ort),
+ );
+ return;
+ }
+ case WithdrawalRecordType.Recoup:
+ // FIXME: Do we also report a transaction here?
+ return;
}
});