diff options
author | Florian Dold <florian@dold.me> | 2022-11-02 12:50:34 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-11-02 12:50:34 +0100 |
commit | 87bc4a6fcd3b274f25ffe9a74196aa5f4f586b7e (patch) | |
tree | f2ce9ab1636cdc5de58ec11d74df1ba2cec71a3c /packages/taler-wallet-core/src/operations/transactions.ts | |
parent | aab3f917c42c9c38b0d13b69380075e5a0505720 (diff) | |
download | wallet-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.ts | 54 |
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; } }); |