diff options
author | Marc Stibane <marc@taler.net> | 2024-02-04 14:42:46 +0100 |
---|---|---|
committer | Marc Stibane <marc@taler.net> | 2024-02-04 14:42:46 +0100 |
commit | 8e1279953d0890c50439d6f2fd28cfea91f025f6 (patch) | |
tree | 9809db4d44c2a67007c9110611e035cc788ff865 | |
parent | cb8db09e0455dc854bc7c0ff458c00f15386faa8 (diff) | |
download | taler-ios-8e1279953d0890c50439d6f2fd28cfea91f025f6.tar.gz taler-ios-8e1279953d0890c50439d6f2fd28cfea91f025f6.tar.bz2 taler-ios-8e1279953d0890c50439d6f2fd28cfea91f025f6.zip |
devExperiment Refresh
-rw-r--r-- | TalerWallet1/Model/WalletModel.swift | 41 | ||||
-rw-r--r-- | 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" |