aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-01-13 16:34:07 -0300
committerSebastian <sebasjm@gmail.com>2023-01-13 16:34:07 -0300
commit767f1a9d671d426b0c5b32626900ab26d93f13d4 (patch)
treeebcc97055ba5932e391ff0ab12768b489ddacc4e
parent0b2bf13deff518c3ebbdaf4a72d2c162790906b7 (diff)
downloadwallet-core-767f1a9d671d426b0c5b32626900ab26d93f13d4.tar.xz
remove activeLongPoll on error and prevent activeLongPoll skip if forced
-rw-r--r--packages/taler-wallet-core/src/operations/withdraw.ts9
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);
}