fix: update retry info before return

This commit is contained in:
Sebastian 2022-05-18 15:57:10 -03:00
parent 145714b335
commit 5595e942b4
No known key found for this signature in database
GPG Key ID: BE4FF68352439FC1
6 changed files with 11 additions and 26 deletions
packages/taler-wallet-core/src/operations

View File

@ -245,6 +245,7 @@ async function runBackupCycleForProvider(
ws: InternalWalletState, ws: InternalWalletState,
args: BackupForProviderArgs, args: BackupForProviderArgs,
): Promise<void> { ): Promise<void> {
const provider = await ws.db const provider = await ws.db
.mktx((x) => ({ backupProviders: x.backupProviders })) .mktx((x) => ({ backupProviders: x.backupProviders }))
.runReadOnly(async (tx) => { .runReadOnly(async (tx) => {

View File

@ -149,6 +149,8 @@ async function processDepositGroupImpl(
} = {}, } = {},
): Promise<void> { ): Promise<void> {
const forceNow = options.forceNow ?? false; const forceNow = options.forceNow ?? false;
await setupDepositGroupRetry(ws, depositGroupId, { resetRetry: forceNow });
const depositGroup = await ws.db const depositGroup = await ws.db
.mktx((x) => ({ .mktx((x) => ({
depositGroups: x.depositGroups, depositGroups: x.depositGroups,
@ -165,8 +167,6 @@ async function processDepositGroupImpl(
return; return;
} }
await setupDepositGroupRetry(ws, depositGroupId, { resetRetry: forceNow });
const contractData = extractContractData( const contractData = extractContractData(
depositGroup.contractTermsRaw, depositGroup.contractTermsRaw,
depositGroup.contractTermsHash, depositGroup.contractTermsHash,

View File

@ -556,6 +556,8 @@ async function updateExchangeFromUrlImpl(
}> { }> {
const forceNow = options.forceNow ?? false; const forceNow = options.forceNow ?? false;
logger.info(`updating exchange info for ${baseUrl}, forced: ${forceNow}`); logger.info(`updating exchange info for ${baseUrl}, forced: ${forceNow}`);
await setupExchangeUpdateRetry(ws, baseUrl, { reset: forceNow });
const now = AbsoluteTime.now(); const now = AbsoluteTime.now();
baseUrl = canonicalizeBaseUrl(baseUrl); baseUrl = canonicalizeBaseUrl(baseUrl);
@ -574,8 +576,6 @@ async function updateExchangeFromUrlImpl(
return { exchange, exchangeDetails }; return { exchange, exchangeDetails };
} }
await setupExchangeUpdateRetry(ws, baseUrl, { reset: forceNow });
logger.info("updating exchange /keys info"); logger.info("updating exchange /keys info");
const timeout = getExchangeRequestTimeout(); const timeout = getExchangeRequestTimeout();

View File

@ -672,6 +672,8 @@ async function processDownloadProposalImpl(
} = {}, } = {},
): Promise<void> { ): Promise<void> {
const forceNow = options.forceNow ?? false; const forceNow = options.forceNow ?? false;
await setupProposalRetry(ws, proposalId, { reset: forceNow });
const proposal = await ws.db const proposal = await ws.db
.mktx((x) => ({ proposals: x.proposals })) .mktx((x) => ({ proposals: x.proposals }))
.runReadOnly(async (tx) => { .runReadOnly(async (tx) => {
@ -686,8 +688,6 @@ async function processDownloadProposalImpl(
return; return;
} }
await setupProposalRetry(ws, proposalId, { reset: forceNow });
const orderClaimUrl = new URL( const orderClaimUrl = new URL(
`orders/${proposal.orderId}/claim`, `orders/${proposal.orderId}/claim`,
proposal.merchantBaseUrl, proposal.merchantBaseUrl,

View File

@ -1022,6 +1022,8 @@ export async function autoRefresh(
exchangeBaseUrl: string, exchangeBaseUrl: string,
): Promise<void> { ): Promise<void> {
logger.info(`doing auto-refresh check for '${exchangeBaseUrl}'`); logger.info(`doing auto-refresh check for '${exchangeBaseUrl}'`);
//updateExchangeFromUrl will also update retryInfo for this operation
await updateExchangeFromUrl(ws, exchangeBaseUrl, { await updateExchangeFromUrl(ws, exchangeBaseUrl, {
forceNow: true, forceNow: true,
}); });

View File

@ -205,23 +205,6 @@ export async function processTip(
); );
} }
async function resetTipRetry(
ws: InternalWalletState,
tipId: string,
): Promise<void> {
await ws.db
.mktx((x) => ({
tips: x.tips,
}))
.runReadWrite(async (tx) => {
const x = await tx.tips.get(tipId);
if (x) {
x.retryInfo = RetryInfo.reset();
await tx.tips.put(x);
}
});
}
async function processTipImpl( async function processTipImpl(
ws: InternalWalletState, ws: InternalWalletState,
walletTipId: string, walletTipId: string,
@ -230,9 +213,8 @@ async function processTipImpl(
} = {}, } = {},
): Promise<void> { ): Promise<void> {
const forceNow = options.forceNow ?? false; const forceNow = options.forceNow ?? false;
if (forceNow) { await setupTipRetry(ws, walletTipId, { reset: forceNow });
await resetTipRetry(ws, walletTipId);
}
const tipRecord = await ws.db const tipRecord = await ws.db
.mktx((x) => ({ .mktx((x) => ({
tips: x.tips, tips: x.tips,