diff options
author | Sebastian <sebasjm@gmail.com> | 2023-01-13 16:34:07 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-01-13 16:34:07 -0300 |
commit | 767f1a9d671d426b0c5b32626900ab26d93f13d4 (patch) | |
tree | ebcc97055ba5932e391ff0ab12768b489ddacc4e /packages/taler-wallet-core/src/operations/withdraw.ts | |
parent | 0b2bf13deff518c3ebbdaf4a72d2c162790906b7 (diff) | |
download | wallet-core-767f1a9d671d426b0c5b32626900ab26d93f13d4.tar.xz |
remove activeLongPoll on error and prevent activeLongPoll skip if forced
Diffstat (limited to 'packages/taler-wallet-core/src/operations/withdraw.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/withdraw.ts | 9 |
1 files 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 index 368cf3510..a1a39bf32 100644 --- 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); } |