gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-ios] 12/32: devExperiment Refresh


From: gnunet
Subject: [taler-taler-ios] 12/32: devExperiment Refresh
Date: Sat, 10 Feb 2024 15:04:38 +0100

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

marc-stibane pushed a commit to branch master
in repository taler-ios.

commit 8e1279953d0890c50439d6f2fd28cfea91f025f6
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sun Feb 4 14:42:46 2024 +0100

    devExperiment Refresh
---
 TalerWallet1/Model/WalletModel.swift           | 41 ++++++++++++++++++++++----
 TalerWallet1/Views/Settings/SettingsView.swift | 15 ++++++++++
 2 files changed, 51 insertions(+), 5 deletions(-)

diff --git a/TalerWallet1/Model/WalletModel.swift 
b/TalerWallet1/Model/WalletModel.swift
index dadf3fa..86cf4e6 100644
--- a/TalerWallet1/Model/WalletModel.swift
+++ b/TalerWallet1/Model/WalletModel.swift
@@ -91,21 +91,31 @@ struct VersionInfo: Decodable {
 fileprivate struct InitRequest: WalletBackendFormattedRequest {
     func operation() -> String { "init" }
     func args() -> Args {
+        let testing = Testing(devModeActive: false) // true, false
+        let config = Config(testing: testing)
         return Args(persistentStoragePath: persistentStoragePath,
 //                       cryptoWorkerType: "sync",
-                                 logLevel: "info", // trace, info, warn, 
error, none
+                                 logLevel: "info",  // trace, info, warn, 
error, none
+                                   config: config,
                          useNativeLogging: true)
     }
 
+    var persistentStoragePath: String
+
+    struct Testing: Encodable {
+        var devModeActive: Bool
+        // more to come...
+    }
+    struct Config: Encodable {
+        var testing: Testing
+    }
     struct Args: Encodable {
         var persistentStoragePath: String
 //        var cryptoWorkerType: String
         var logLevel: String
+        var config: Config
         var useNativeLogging: Bool
     }
-
-    var persistentStoragePath: String
-
     struct Response: Decodable {
         var versionInfo: VersionInfo
     }
@@ -158,7 +168,7 @@ extension WalletModel {
     }
 }
 // MARK: -
-///  A request to initialize Wallet-core
+///  A request to reset Wallet-core to a virgin DB. WILL DESTROY ALL COINS
 fileprivate struct ResetRequest: WalletBackendFormattedRequest {
     func operation() -> String { "clearDb" }
     func args() -> Args { Args() }
@@ -176,3 +186,24 @@ extension WalletModel {
     }
 }
 // MARK: -
+
+fileprivate struct DevExperimentRequest: WalletBackendFormattedRequest {
+    func operation() -> String { "applyDevExperiment" }
+    func args() -> Args { Args(devExperimentUri: talerUri) }
+
+    var talerUri: String
+
+    struct Args: Encodable {
+        var devExperimentUri: String
+    }
+    struct Response: Decodable {}
+}
+
+extension WalletModel {
+    /// tell wallet-core to mock new transactions
+    func devExperimentT(talerUri: String) async throws {
+        // T for any Thread
+        let request = DevExperimentRequest(talerUri: talerUri)
+        _ = try await sendRequest(request, 0)
+    }
+}
diff --git a/TalerWallet1/Views/Settings/SettingsView.swift 
b/TalerWallet1/Views/Settings/SettingsView.swift
index 6484c2e..cb38f38 100644
--- a/TalerWallet1/Views/Settings/SettingsView.swift
+++ b/TalerWallet1/Views/Settings/SettingsView.swift
@@ -184,6 +184,21 @@ struct SettingsView: View {
                             walletCore.developDelay = delay}), id1: "delay",
                                        description: hideDescriptions ? nil : 
String("After each wallet-core action"))
                             .id("delay")
+                        SettingsItem(name: String("Run Dev Experiment"), id1: 
"applyDevExperiment",
+                              description: hideDescriptions ? nil : 
"dev-experiment/insert-pending-refresh") {
+                            let title = "Refresh"
+                            Button(title) {
+                                Task { // runs on MainActor
+                                    symLog.log("running applyDevExperiment 
Refresh")
+                                    do {
+                                        try await 
model.devExperimentT(talerUri: "taler://dev-experiment/insert-pending-refresh")
+                                    } catch {    // TODO: show error
+                                        symLog.log(error.localizedDescription)
+                                    }
+                                }
+                            }
+                            .buttonStyle(.bordered)
+                        }.id("Refresh")
                         SettingsItem(name: String("Run Integration Test"), 
id1: "demo1test",
                               description: hideDescriptions ? nil : 
String("Perform basic test transactions")) {
                             let title = "Demo 1"

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