aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2020-11-16 16:17:26 +0100
committerFlorian Dold <florian@dold.me>2020-11-16 16:17:26 +0100
commitaf5a35def0c7e914bd733e652e2c3c759a4b7384 (patch)
tree12ebcc0784cacb38c4fbe7360d5b2db2bbfb8ceb
parenteaae2d4ca8323c7cb954238128577cbb91bb6cac (diff)
only query tip status on first call to prepare
-rw-r--r--packages/taler-wallet-core/src/operations/tip.ts34
1 files changed, 17 insertions, 17 deletions
diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts
index 1d7386b8d..1d19a72ed 100644
--- a/packages/taler-wallet-core/src/operations/tip.ts
+++ b/packages/taler-wallet-core/src/operations/tip.ts
@@ -59,26 +59,26 @@ export async function prepareTip(
throw Error("invalid taler://tip URI");
}
- const tipStatusUrl = new URL(
- `tips/${res.merchantTipId}`,
- res.merchantBaseUrl,
- );
- logger.trace("checking tip status from", tipStatusUrl.href);
- const merchantResp = await ws.http.get(tipStatusUrl.href);
- const tipPickupStatus = await readSuccessResponseJsonOrThrow(
- merchantResp,
- codecForTipPickupGetResponse(),
- );
- logger.trace(`status ${j2s(tipPickupStatus)}`);
-
- const amount = Amounts.parseOrThrow(tipPickupStatus.tip_amount);
-
let tipRecord = await ws.db.getIndexed(
Stores.tips.byMerchantTipIdAndBaseUrl,
[res.merchantTipId, res.merchantBaseUrl],
);
if (!tipRecord) {
+ const tipStatusUrl = new URL(
+ `tips/${res.merchantTipId}`,
+ res.merchantBaseUrl,
+ );
+ logger.trace("checking tip status from", tipStatusUrl.href);
+ const merchantResp = await ws.http.get(tipStatusUrl.href);
+ const tipPickupStatus = await readSuccessResponseJsonOrThrow(
+ merchantResp,
+ codecForTipPickupGetResponse(),
+ );
+ logger.trace(`status ${j2s(tipPickupStatus)}`);
+
+ const amount = Amounts.parseOrThrow(tipPickupStatus.tip_amount);
+
logger.trace("new tip, creating tip record");
await updateExchangeFromUrl(ws, tipPickupStatus.exchange_url);
const withdrawDetails = await getExchangeWithdrawalInfo(
@@ -119,9 +119,9 @@ export async function prepareTip(
const tipStatus: PrepareTipResult = {
accepted: !!tipRecord && !!tipRecord.acceptedTimestamp,
- tipAmountRaw: Amounts.stringify(tipPickupStatus.tip_amount),
- exchangeBaseUrl: tipPickupStatus.exchange_url,
- expirationTimestamp: tipPickupStatus.expiration,
+ tipAmountRaw: Amounts.stringify(tipRecord.tipAmountRaw),
+ exchangeBaseUrl: tipRecord.exchangeBaseUrl,
+ expirationTimestamp: tipRecord.tipExpiration,
tipAmountEffective: Amounts.stringify(tipRecord.tipAmountEffective),
walletTipId: tipRecord.walletTipId,
};