taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit af5a35def0c7e914bd733e652e2c3c759a4b7384
parent eaae2d4ca8323c7cb954238128577cbb91bb6cac
Author: Florian Dold <florian@dold.me>
Date:   Mon, 16 Nov 2020 16:17:26 +0100

only query tip status on first call to prepare

Diffstat:
Mpackages/taler-wallet-core/src/operations/tip.ts | 34+++++++++++++++++-----------------
1 file 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 @@ -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, };