diff options
| -rw-r--r-- | packages/taler-util/src/taler-types.ts | 10 | ||||
| -rw-r--r-- | packages/taler-util/src/transactions-types.ts | 7 | ||||
| -rw-r--r-- | packages/taler-wallet-core/src/operations/reward.ts | 6 | ||||
| -rw-r--r-- | packages/taler-wallet-core/src/operations/transactions.ts | 11 | 
4 files changed, 24 insertions, 10 deletions
| diff --git a/packages/taler-util/src/taler-types.ts b/packages/taler-util/src/taler-types.ts index 767adb799..551b0652f 100644 --- a/packages/taler-util/src/taler-types.ts +++ b/packages/taler-util/src/taler-types.ts @@ -1006,8 +1006,8 @@ export class WithdrawOperationStatusResponse {  /**   * Response from the merchant.   */ -export class TipPickupGetResponse { -  tip_amount: string; +export class RewardPickupGetResponse { +  reward_amount: string;    exchange_url: string; @@ -1566,9 +1566,9 @@ export const codecForWithdrawOperationStatusResponse =        .property("wire_types", codecForList(codecForString()))        .build("WithdrawOperationStatusResponse"); -export const codecForTipPickupGetResponse = (): Codec<TipPickupGetResponse> => -  buildCodecForObject<TipPickupGetResponse>() -    .property("tip_amount", codecForString()) +export const codecForRewardPickupGetResponse = (): Codec<RewardPickupGetResponse> => +  buildCodecForObject<RewardPickupGetResponse>() +    .property("reward_amount", codecForString())      .property("exchange_url", codecForString())      .property("next_url", codecOptional(codecForString()))      .property("expiration", codecForTimestamp) diff --git a/packages/taler-util/src/transactions-types.ts b/packages/taler-util/src/transactions-types.ts index 63db206bd..32d10a953 100644 --- a/packages/taler-util/src/transactions-types.ts +++ b/packages/taler-util/src/transactions-types.ts @@ -63,6 +63,13 @@ export interface TransactionsRequest {    search?: string;    /** +   * Sort order of the transaction items. +   * By default, items are sorted ascending by their +   * main timestamp. +   */ +  sort?: "ascending" | "descending", + +  /**     * If true, include all refreshes in the transactions list.     */    includeRefreshes?: boolean; diff --git a/packages/taler-wallet-core/src/operations/reward.ts b/packages/taler-wallet-core/src/operations/reward.ts index 4e16d977d..ed9927bab 100644 --- a/packages/taler-wallet-core/src/operations/reward.ts +++ b/packages/taler-wallet-core/src/operations/reward.ts @@ -23,7 +23,7 @@ import {    Amounts,    BlindedDenominationSignature,    codecForMerchantTipResponseV2, -  codecForTipPickupGetResponse, +  codecForRewardPickupGetResponse,    CoinStatus,    DenomKeyType,    encodeCrock, @@ -168,11 +168,11 @@ export async function prepareTip(      const merchantResp = await ws.http.fetch(tipStatusUrl.href);      const tipPickupStatus = await readSuccessResponseJsonOrThrow(        merchantResp, -      codecForTipPickupGetResponse(), +      codecForRewardPickupGetResponse(),      );      logger.trace(`status ${j2s(tipPickupStatus)}`); -    const amount = Amounts.parseOrThrow(tipPickupStatus.tip_amount); +    const amount = Amounts.parseOrThrow(tipPickupStatus.reward_amount);      logger.trace("new tip, creating tip record");      await updateExchangeFromUrl(ws, tipPickupStatus.exchange_url); diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts index 72c67b153..bebb3d60b 100644 --- a/packages/taler-wallet-core/src/operations/transactions.ts +++ b/packages/taler-wallet-core/src/operations/transactions.ts @@ -1290,9 +1290,16 @@ export async function getTransactions(    const txPending = transactions.filter((x) => isPending(x));    const txNotPending = transactions.filter((x) => !isPending(x)); +  let sortSign: number; +  if (transactionsRequest?.sort == "descending") { +    sortSign = -1; +  } else { +    sortSign = 1; +  } +    const txCmp = (h1: Transaction, h2: Transaction) => {      // Order transactions by timestamp.  Newest transactions come first. -    const tsCmp = -AbsoluteTime.cmp( +    const tsCmp = AbsoluteTime.cmp(        AbsoluteTime.fromPreciseTimestamp(h1.timestamp),        AbsoluteTime.fromPreciseTimestamp(h2.timestamp),      ); @@ -1300,7 +1307,7 @@ export async function getTransactions(      if (tsCmp === 0) {        return Math.sign(txOrder[h1.type] - txOrder[h2.type]);      } -    return tsCmp; +    return sortSign * tsCmp;    };    txPending.sort(txCmp); | 
