gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: fix #7552, add next_url from


From: gnunet
Subject: [taler-wallet-core] branch master updated: fix #7552, add next_url from the tip information when accepting tips
Date: Wed, 01 Feb 2023 17:00:22 +0100

This is an automated email from the git hooks/post-receive script.

sebasjm pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new ab9a5e1e8 fix #7552, add next_url from the tip information when 
accepting tips
ab9a5e1e8 is described below

commit ab9a5e1e8ac60bbf55104e84490e581dfad5de02
Author: Sebastian <sebasjm@gmail.com>
AuthorDate: Wed Feb 1 13:00:12 2023 -0300

    fix #7552, add next_url from the tip information when accepting tips
---
 packages/taler-util/src/backup-types.ts                    | 5 +++++
 packages/taler-util/src/taler-types.ts                     | 3 +++
 packages/taler-util/src/wallet-types.ts                    | 1 +
 packages/taler-wallet-core/src/db.ts                       | 4 ++++
 packages/taler-wallet-core/src/operations/backup/export.ts | 1 +
 packages/taler-wallet-core/src/operations/backup/import.ts | 1 +
 packages/taler-wallet-core/src/operations/tip.ts           | 9 +++++++--
 7 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/packages/taler-util/src/backup-types.ts 
b/packages/taler-util/src/backup-types.ts
index b3c6b5515..0a355b65f 100644
--- a/packages/taler-util/src/backup-types.ts
+++ b/packages/taler-util/src/backup-types.ts
@@ -668,6 +668,11 @@ export interface BackupTip {
    */
   selected_denoms: BackupDenomSel;
 
+  /**
+   * The url to be redirected after the tip is accepted.
+   */
+  next_url: string | undefined;
+
   /**
    * UID for the denomination selection.
    * Used to disambiguate when merging.
diff --git a/packages/taler-util/src/taler-types.ts 
b/packages/taler-util/src/taler-types.ts
index 8b680bdd9..a9303ed9c 100644
--- a/packages/taler-util/src/taler-types.ts
+++ b/packages/taler-util/src/taler-types.ts
@@ -905,6 +905,8 @@ export class TipPickupGetResponse {
 
   exchange_url: string;
 
+  next_url?: string;
+
   expiration: TalerProtocolTimestamp;
 }
 
@@ -1464,6 +1466,7 @@ export const codecForTipPickupGetResponse = (): 
Codec<TipPickupGetResponse> =>
   buildCodecForObject<TipPickupGetResponse>()
     .property("tip_amount", codecForString())
     .property("exchange_url", codecForString())
+    .property("next_url", codecOptional(codecForString()))
     .property("expiration", codecForTimestamp)
     .build("TipPickupGetResponse");
 
diff --git a/packages/taler-util/src/wallet-types.ts 
b/packages/taler-util/src/wallet-types.ts
index b7a51de9e..d57a221f3 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -379,6 +379,7 @@ export interface PrepareTipResult {
 
 export interface AcceptTipResponse {
   transactionId: string;
+  next_url?: string;
 }
 
 export const codecForPrepareTipResult = (): Codec<PrepareTipResult> =>
diff --git a/packages/taler-wallet-core/src/db.ts 
b/packages/taler-wallet-core/src/db.ts
index 6a42cabcb..78c73fba5 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -821,6 +821,10 @@ export interface TipRecord {
 
   createdTimestamp: TalerProtocolTimestamp;
 
+  /**
+   * The url to be redirected after the tip is accepted.
+   */
+  next_url: string | undefined;
   /**
    * Timestamp for when the wallet finished picking up the tip
    * from the merchant.
diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts 
b/packages/taler-wallet-core/src/operations/backup/export.ts
index a66444485..3dd4e0e32 100644
--- a/packages/taler-wallet-core/src/operations/backup/export.ts
+++ b/packages/taler-wallet-core/src/operations/backup/export.ts
@@ -190,6 +190,7 @@ export async function exportBackup(
           merchant_base_url: tip.merchantBaseUrl,
           merchant_tip_id: tip.merchantTipId,
           wallet_tip_id: tip.walletTipId,
+          next_url: tip.next_url,
           secret_seed: tip.secretSeed,
           selected_denoms: tip.denomsSel.selectedDenoms.map((x) => ({
             count: x.count,
diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts 
b/packages/taler-wallet-core/src/operations/backup/import.ts
index c94eb7eb6..c1be1d4d9 100644
--- a/packages/taler-wallet-core/src/operations/backup/import.ts
+++ b/packages/taler-wallet-core/src/operations/backup/import.ts
@@ -824,6 +824,7 @@ export async function importBackup(
             acceptedTimestamp: backupTip.timestamp_accepted,
             createdTimestamp: backupTip.timestamp_created,
             denomsSel,
+            next_url: backupTip.next_url,
             exchangeBaseUrl: backupTip.exchange_base_url,
             merchantBaseUrl: backupTip.exchange_base_url,
             merchantTipId: backupTip.merchant_tip_id,
diff --git a/packages/taler-wallet-core/src/operations/tip.ts 
b/packages/taler-wallet-core/src/operations/tip.ts
index dabde9f62..2bf216102 100644
--- a/packages/taler-wallet-core/src/operations/tip.ts
+++ b/packages/taler-wallet-core/src/operations/tip.ts
@@ -130,6 +130,7 @@ export async function prepareTip(
       tipAmountRaw: Amounts.stringify(amount),
       tipExpiration: tipPickupStatus.expiration,
       exchangeBaseUrl: tipPickupStatus.exchange_url,
+      next_url: tipPickupStatus.next_url,
       merchantBaseUrl: res.merchantBaseUrl,
       createdTimestamp: TalerProtocolTimestamp.now(),
       merchantTipId: res.merchantTipId,
@@ -355,17 +356,21 @@ export async function acceptTip(
       const tipRecord = await tx.tips.get(tipId);
       if (!tipRecord) {
         logger.error("tip not found");
-        return false;
+        return undefined;
       }
       tipRecord.acceptedTimestamp = TalerProtocolTimestamp.now();
       await tx.tips.put(tipRecord);
 
-      return true;
+      return tipRecord;
     });
+
   if (found) {
     await processTip(ws, tipId);
   }
+  //FIXME: if tip is not found the behavior of the function is the same
+  // as the tip was found and finished
   return {
     transactionId: makeTransactionId(TransactionType.Tip, tipId),
+    next_url: found?.next_url,
   };
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]