commit 3829c37684c59a3f2cc8a57b7f311fdfc370adf0
parent 2eb89f9980afa3cb4d5bf692dc8806ca9440b502
Author: Marc Stibane <marc@taler.net>
Date: Fri, 17 Jul 2026 08:27:33 +0200
Cancel & retry
Diffstat:
1 file changed, 49 insertions(+), 10 deletions(-)
diff --git a/TalerWallet1/Model/WalletModel.swift b/TalerWallet1/Model/WalletModel.swift
@@ -190,14 +190,43 @@ extension WalletModel {
}
}
// MARK: -
+/// A request to cancel a wallet transaction by token.
+fileprivate struct CancelProgressToken: WalletBackendFormattedRequest {
+ struct Response: Decodable {}
+ func operation() -> String { "cancelProgressToken" }
+ func args() -> Args { Args(operation: op, progressToken: token) }
+
+ var op: String
+ var token: String
+
+ struct Args: Encodable {
+ var operation: String
+ var progressToken: String
+ }
+}
+/// A request to retry a wallet transaction by token.
+fileprivate struct RetryProgressTokenNow: WalletBackendFormattedRequest {
+ struct Response: Decodable {}
+ func operation() -> String { "retryProgressTokenNow" }
+ func args() -> Args { Args(operation: op, progressToken: token) }
+
+ var op: String
+ var token: String
+
+ struct Args: Encodable {
+ var operation: String
+ var progressToken: String
+ }
+}
+// MARK: -
/// A request to get a wallet transaction by ID.
fileprivate struct GetTransactionById: WalletBackendFormattedRequest {
typealias Response = TalerTransaction
func operation() -> String { "getTransactionById" }
- func args() -> Args { Args(transactionId: transactionId, includeContractTerms: includeContractTerms) }
+ func args() -> Args { Args(transactionId: txId, includeContractTerms: inclTerms) }
- var transactionId: String
- var includeContractTerms: Bool?
+ var txId: String
+ var inclTerms: Bool?
struct Args: Encodable {
var transactionId: String
@@ -220,10 +249,20 @@ fileprivate struct JSONTransactionById: WalletBackendFormattedRequest {
}
extension WalletModel {
+ nonisolated func cancelProgressToken(_ op: String, token: String)
+ async throws {
+ let request = CancelProgressToken(op: op, token: token)
+ let _ = try await sendRequest(request)
+ }
+ nonisolated func retryProgressTokenNow(_ op: String, token: String)
+ async throws {
+ let request = RetryProgressTokenNow(op: op, token: token)
+ let _ = try await sendRequest(request)
+ }
/// get the specified transaction from Wallet-Core. No networking involved
nonisolated func getTransactionById(_ transactionId: String, includeContractTerms: Bool? = nil, viewHandles: Bool = false)
async throws -> TalerTransaction {
- let request = GetTransactionById(transactionId: transactionId, includeContractTerms: includeContractTerms)
+ let request = GetTransactionById(txId: transactionId, inclTerms: includeContractTerms)
return try await sendRequest(request, viewHandles: viewHandles)
}
nonisolated func jsonTransactionById(_ transactionId: String, includeContractTerms: Bool? = nil, viewHandles: Bool = false)
@@ -379,15 +418,15 @@ extension WalletModel {
} catch {
logger.error("migrate: move failed \(error.localizedDescription)")
}
- } else {
- logger.debug("migrate: nothing to do, no db at \(sourcePath)")
+// } else {
+// logger.debug("migrate: nothing to do, no db at \(sourcePath)")
}
- if fileManager.fileExists(atPath: targetPath) {
+// if fileManager.fileExists(atPath: targetPath) {
// logger.debug("found db at \(targetPath)")
- } else {
- logger.debug("migrate: nothing to do, no db at \(targetPath)")
- }
+// } else {
+// logger.debug("migrate: nothing to do, no db at \(targetPath)")
+// }
}
private func dbPath() throws -> String {