From 7d15ce3d888ca93b2b33d994fed3e4cabb957f4d Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 11 Jun 2021 13:18:33 +0200 Subject: make retryInfo optional --- packages/taler-wallet-core/src/operations/pay.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'packages/taler-wallet-core/src/operations/pay.ts') diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts index 39adad70e..9bfad177a 100644 --- a/packages/taler-wallet-core/src/operations/pay.ts +++ b/packages/taler-wallet-core/src/operations/pay.ts @@ -51,6 +51,7 @@ import { PreparePayResultType, parsePayUri, Logger, + getDurationRemaining, } from "@gnu-taler/taler-util"; import { encodeCrock, getRandomBytes } from "../crypto/talerCrypto"; import { @@ -522,10 +523,15 @@ async function incrementPurchasePayRetry( return; } if (!pr.payRetryInfo) { - return; + pr.payRetryInfo = initRetryInfo(); } pr.payRetryInfo.retryCounter++; updateRetryInfoTimeout(pr.payRetryInfo); + logger.trace( + `retrying pay in ${ + getDurationRemaining(pr.payRetryInfo.nextRetry).d_ms + } ms`, + ); pr.lastPayError = err; await tx.purchases.put(pr); }); @@ -556,7 +562,7 @@ async function resetDownloadProposalRetry( .runReadWrite(async (tx) => { const p = await tx.proposals.get(proposalId); if (p) { - p.retryInfo = initRetryInfo(); + delete p.retryInfo; await tx.proposals.put(p); } }); @@ -1135,7 +1141,7 @@ async function submitPay( // Hide transient errors. if ( - purchase.payRetryInfo.retryCounter <= 5 && + (purchase.payRetryInfo?.retryCounter ?? 0) <= 5 && resp.status >= 500 && resp.status <= 599 ) { @@ -1214,7 +1220,7 @@ async function submitPay( ); // Hide transient errors. if ( - purchase.payRetryInfo.retryCounter <= 5 && + (purchase.payRetryInfo?.retryCounter ?? 0) <= 5 && resp.status >= 500 && resp.status <= 599 ) { -- cgit v1.2.3