summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-02-20 16:15:18 +0100
committerFlorian Dold <florian@dold.me>2024-02-20 16:15:18 +0100
commitba3e64470ae035c431ca8107ed547269e7307c4a (patch)
tree7cfba30a605c969db34458c19838abdc0a4ae836 /packages/taler-wallet-core
parent7ecd0b96bc18440209775605bd3e325465638e1a (diff)
downloadwallet-core-ba3e64470ae035c431ca8107ed547269e7307c4a.tar.gz
wallet-core-ba3e64470ae035c431ca8107ed547269e7307c4a.tar.bz2
wallet-core-ba3e64470ae035c431ca8107ed547269e7307c4a.zip
wallet-core: long-polling
Diffstat (limited to 'packages/taler-wallet-core')
-rw-r--r--packages/taler-wallet-core/src/deposits.ts7
-rw-r--r--packages/taler-wallet-core/src/pay-peer-pull-credit.ts9
-rw-r--r--packages/taler-wallet-core/src/pay-peer-push-credit.ts5
-rw-r--r--packages/taler-wallet-core/src/pay-peer-push-debit.ts4
4 files changed, 15 insertions, 10 deletions
diff --git a/packages/taler-wallet-core/src/deposits.ts b/packages/taler-wallet-core/src/deposits.ts
index f532dc136..38e8f04bb 100644
--- a/packages/taler-wallet-core/src/deposits.ts
+++ b/packages/taler-wallet-core/src/deposits.ts
@@ -889,7 +889,9 @@ async function processDepositGroupPendingTrack(
});
return TaskRunResult.finished();
} else {
- return TaskRunResult.longpollReturnedPending();
+ // Backing off until deposit long-polling works in the exchange.
+ return TaskRunResult.backoff();
+ // return TaskRunResult.longpollReturnedPending();
}
}
@@ -1134,7 +1136,8 @@ async function trackDeposit(
wireHash,
});
url.searchParams.set("merchant_sig", sigResp.sig);
- url.searchParams.set("timeout_ms", "30000");
+ // Not doing long-polling yet as it looks like it's broken in the exchange (2024-02-20)
+ // url.searchParams.set("timeout_ms", "30000");
const httpResp = await ws.http.fetch(url.href, {
method: "GET",
cancellationToken,
diff --git a/packages/taler-wallet-core/src/pay-peer-pull-credit.ts b/packages/taler-wallet-core/src/pay-peer-pull-credit.ts
index d862a3b3a..6e4c2df70 100644
--- a/packages/taler-wallet-core/src/pay-peer-pull-credit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-pull-credit.ts
@@ -409,7 +409,8 @@ async function queryPurseForPeerPullCredit(
return TaskRunResult.backoff();
}
case HttpStatusCode.NotFound:
- return TaskRunResult.backoff();
+ // FIXME: Maybe check error code? 404 could also mean something else.
+ return TaskRunResult.longpollReturnedPending();
}
const result = await readSuccessResponseJsonOrThrow(
@@ -493,7 +494,7 @@ async function longpollKycStatus(
});
if (
kycStatusRes.status === HttpStatusCode.Ok ||
- //FIXME: NoContent is not expected https://docs.taler.net/core/api-exchange.html#post--purses-$PURSE_PUB-merge
+ // FIXME: NoContent is not expected https://docs.taler.net/core/api-exchange.html#post--purses-$PURSE_PUB-merge
// remove after the exchange is fixed or clarified
kycStatusRes.status === HttpStatusCode.NoContent
) {
@@ -517,12 +518,12 @@ async function longpollKycStatus(
},
);
notifyTransition(ws, transactionId, transitionInfo);
+ return TaskRunResult.progress();
} else if (kycStatusRes.status === HttpStatusCode.Accepted) {
- // FIXME: Do we have to update the URL here?
+ return TaskRunResult.longpollReturnedPending();
} else {
throw Error(`unexpected response from kyc-check (${kycStatusRes.status})`);
}
- return TaskRunResult.backoff();
}
async function processPeerPullCreditAbortingDeletePurse(
diff --git a/packages/taler-wallet-core/src/pay-peer-push-credit.ts b/packages/taler-wallet-core/src/pay-peer-push-credit.ts
index ed1e09495..b574be36b 100644
--- a/packages/taler-wallet-core/src/pay-peer-push-credit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-push-credit.ts
@@ -532,7 +532,7 @@ async function longpollKycStatus(
`kyc-check/${kycInfo.requirementRow}/${kycInfo.paytoHash}/${userType}`,
exchangeUrl,
);
- url.searchParams.set("timeout_ms", "10000");
+ url.searchParams.set("timeout_ms", "30000");
logger.info(`kyc url ${url.href}`);
const kycStatusRes = await ws.http.fetch(url.href, {
method: "GET",
@@ -562,12 +562,13 @@ async function longpollKycStatus(
},
);
notifyTransition(ws, transactionId, transitionInfo);
+ return TaskRunResult.progress();
} else if (kycStatusRes.status === HttpStatusCode.Accepted) {
// FIXME: Do we have to update the URL here?
+ return TaskRunResult.longpollReturnedPending();
} else {
throw Error(`unexpected response from kyc-check (${kycStatusRes.status})`);
}
- return TaskRunResult.backoff();
}
async function processPeerPushCreditKycRequired(
diff --git a/packages/taler-wallet-core/src/pay-peer-push-debit.ts b/packages/taler-wallet-core/src/pay-peer-push-debit.ts
index 355418601..9cfbe25c4 100644
--- a/packages/taler-wallet-core/src/pay-peer-push-debit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-push-debit.ts
@@ -812,7 +812,7 @@ async function processPeerPushDebitReady(
stTo: PeerPushDebitStatus.Done,
},
);
- return TaskRunResult.finished();
+ return TaskRunResult.progress();
}
} else if (resp.status === HttpStatusCode.Gone) {
logger.info(`purse ${pursePub} is gone, aborting peer-push-debit`);
@@ -865,7 +865,7 @@ async function processPeerPushDebitReady(
return TaskRunResult.backoff();
} else {
logger.warn(`unexpected HTTP status for purse: ${resp.status}`);
- return TaskRunResult.backoff();
+ return TaskRunResult.longpollReturnedPending();
}
}