gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated (e63f202e3 -> 5ba7956f4)


From: gnunet
Subject: [taler-wallet-core] branch master updated (e63f202e3 -> 5ba7956f4)
Date: Fri, 21 Oct 2022 16:08:19 +0200

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

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

    from e63f202e3 better workaround with duplication
     new 4dac65e55 mapping missing purchase state with backup state
     new 5da924a76 storePayReplaySuccess should also considre PayingReplay
     new 5ba7956f4 unlockBackup was not unlocking: not updating when backup 
state is ready also nextBackupTimestap = now tries to backup in a loop

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/operations/backup/export.ts                | 14 ++++++++++---
 .../src/operations/pay-merchant.ts                 | 23 +++++++++++++++-------
 2 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts 
b/packages/taler-wallet-core/src/operations/backup/export.ts
index 59b862d70..1b2a7f637 100644
--- a/packages/taler-wallet-core/src/operations/backup/export.ts
+++ b/packages/taler-wallet-core/src/operations/backup/export.ts
@@ -413,23 +413,31 @@ export async function exportBackup(
         let propStatus: BackupProposalStatus;
         switch (purch.purchaseStatus) {
           case PurchaseStatus.Paid:
+          case PurchaseStatus.QueryingAutoRefund:
+          case PurchaseStatus.QueryingRefund:
             propStatus = BackupProposalStatus.Paid;
-            return;
+            break;
+          case PurchaseStatus.PayingReplay:
           case PurchaseStatus.DownloadingProposal:
           case PurchaseStatus.Proposed:
+          case PurchaseStatus.Paying:
             propStatus = BackupProposalStatus.Proposed;
             break;
           case PurchaseStatus.ProposalDownloadFailed:
+          case PurchaseStatus.PaymentAbortFinished:
             propStatus = BackupProposalStatus.PermanentlyFailed;
             break;
+          case PurchaseStatus.AbortingWithRefund:
           case PurchaseStatus.ProposalRefused:
             propStatus = BackupProposalStatus.Refused;
             break;
           case PurchaseStatus.RepurchaseDetected:
             propStatus = BackupProposalStatus.Repurchase;
             break;
-          default:
-            throw Error();
+          default: {
+            const error: never = purch.purchaseStatus;
+            throw Error(`purchase status ${error} is not handled`);
+          }
         }
 
         const payInfo = purch.payInfo;
diff --git a/packages/taler-wallet-core/src/operations/pay-merchant.ts 
b/packages/taler-wallet-core/src/operations/pay-merchant.ts
index 082dc42d2..70ca0981f 100644
--- a/packages/taler-wallet-core/src/operations/pay-merchant.ts
+++ b/packages/taler-wallet-core/src/operations/pay-merchant.ts
@@ -736,7 +736,10 @@ async function storePayReplaySuccess(
       if (isFirst) {
         throw Error("invalid payment state");
       }
-      if (purchase.purchaseStatus === PurchaseStatus.Paying) {
+      if (
+        purchase.purchaseStatus === PurchaseStatus.Paying ||
+        purchase.purchaseStatus === PurchaseStatus.PayingReplay
+      ) {
         purchase.purchaseStatus = PurchaseStatus.Paid;
       }
       purchase.lastSessionId = sessionId;
@@ -888,12 +891,18 @@ async function unblockBackup(
       await tx.backupProviders.indexes.byPaymentProposalId
         .iter(proposalId)
         .forEachAsync(async (bp) => {
-          if (bp.state.tag === BackupProviderStateTag.Retrying) {
-            bp.state = {
-              tag: BackupProviderStateTag.Ready,
-              nextBackupTimestamp: TalerProtocolTimestamp.now(),
-            };
-          }
+          // if (bp.state.tag === BackupProviderStateTag.Retrying) {
+          bp.state = {
+            tag: BackupProviderStateTag.Ready,
+            nextBackupTimestamp: AbsoluteTime.toTimestamp(
+              AbsoluteTime.addDuration(
+                AbsoluteTime.now(),
+                Duration.fromSpec({ days: 7 }),
+              ),
+            ),
+          };
+          // }
+          tx.backupProviders.put(bp);
         });
     });
 }

-- 
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]