summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/pay.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-06-11 13:18:33 +0200
committerFlorian Dold <florian@dold.me>2021-06-11 13:18:33 +0200
commit7d15ce3d888ca93b2b33d994fed3e4cabb957f4d (patch)
treeff195348f8949675b95afea2163e16d5e9a7b2cd /packages/taler-wallet-core/src/operations/pay.ts
parente77510106fdcb0448af809fd6c928f1ff80b6d15 (diff)
downloadwallet-core-7d15ce3d888ca93b2b33d994fed3e4cabb957f4d.tar.gz
wallet-core-7d15ce3d888ca93b2b33d994fed3e4cabb957f4d.tar.bz2
wallet-core-7d15ce3d888ca93b2b33d994fed3e4cabb957f4d.zip
make retryInfo optional
Diffstat (limited to 'packages/taler-wallet-core/src/operations/pay.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts14
1 files changed, 10 insertions, 4 deletions
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
) {