aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-02-01 13:00:12 -0300
committerSebastian <sebasjm@gmail.com>2023-02-01 13:00:12 -0300
commitab9a5e1e8ac60bbf55104e84490e581dfad5de02 (patch)
treeac00b38838ee0ca3b600dc505957632b019bf1bb /packages/taler-wallet-core
parentb45dd3ed4d5a43e3622b381e3a2acb16497e9864 (diff)
downloadwallet-core-ab9a5e1e8ac60bbf55104e84490e581dfad5de02.tar.xz
fix #7552, add next_url from the tip information when accepting tips
Diffstat (limited to 'packages/taler-wallet-core')
-rw-r--r--packages/taler-wallet-core/src/db.ts4
-rw-r--r--packages/taler-wallet-core/src/operations/backup/export.ts1
-rw-r--r--packages/taler-wallet-core/src/operations/backup/import.ts1
-rw-r--r--packages/taler-wallet-core/src/operations/tip.ts9
4 files changed, 13 insertions, 2 deletions
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
@@ -822,6 +822,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,
};
}