taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 767f1a9d671d426b0c5b32626900ab26d93f13d4
parent 0b2bf13deff518c3ebbdaf4a72d2c162790906b7
Author: Sebastian <sebasjm@gmail.com>
Date:   Fri, 13 Jan 2023 16:34:07 -0300

remove activeLongPoll on error and prevent activeLongPoll skip if forced

Diffstat:
Mpackages/taler-wallet-core/src/operations/withdraw.ts | 9++++++---
1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts @@ -982,7 +982,9 @@ enum BankStatusResultCode { export async function processWithdrawalGroup( ws: InternalWalletState, withdrawalGroupId: string, - options: object = {}, + options: { + forceNow?: boolean; + } = {}, ): Promise<OperationAttemptResult> { logger.trace("processing withdrawal group", withdrawalGroupId); const withdrawalGroup = await ws.db @@ -998,7 +1000,7 @@ export async function processWithdrawalGroup( const retryTag = RetryTags.forWithdrawal(withdrawalGroup); // We're already running! - if (ws.activeLongpoll[retryTag]) { + if (ws.activeLongpoll[retryTag] && !options.forceNow) { logger.info("withdrawal group already in long-polling, returning!"); return { type: OperationAttemptResultType.Longpoll, @@ -1035,8 +1037,9 @@ export async function processWithdrawalGroup( getErrorDetailFromException(e), ); return; + } finally { + delete ws.activeLongpoll[retryTag]; } - delete ws.activeLongpoll[retryTag]; if (!res.ready) { await storeOperationPending(ws, retryTag); }