commit 9237fc923a5cb9f3457c21817e4c4ad1e0d739ed
parent aaedd0b804ee92e4fb4cb858e3bb5882734fc3e4
Author: Marc Stibane <marc@taler.net>
Date: Wed, 6 Aug 2025 07:33:18 +0200
fix PayTo parsing, check for zero length
Diffstat:
2 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/TalerWallet1/Model/Transaction.swift b/TalerWallet1/Model/Transaction.swift
@@ -151,6 +151,13 @@ struct PayTo { // receiver-name=Taler+Operations+AG&receiver-postal-cod
var amountStr: String?
var messageStr: String?
+ func param(key: String, from params: [String:String]) -> String? {
+ if let param = params[key] {
+ return param.replacingOccurrences(of: "+", with: SPACE)
+ }
+ return nil
+ }
+
init(_ string: String) {
let payURL = URL(string: string)
if let queryParameters = payURL?.queryParameters {
@@ -158,14 +165,10 @@ struct PayTo { // receiver-name=Taler+Operations+AG&receiver-postal-cod
xTaler = payURL?.xTaler ??
// payURL?.host() ??
String(localized: "unknown payment method")
- sender = queryParameters["sender-name"] ?? EMPTYSTRING
- .replacingOccurrences(of: "+", with: SPACE)
- receiver = (queryParameters["receiver-name"] ?? EMPTYSTRING)
- .replacingOccurrences(of: "+", with: SPACE)
- postalCode = (queryParameters["receiver-postal-code"] ?? EMPTYSTRING)
- .replacingOccurrences(of: "+", with: SPACE)
- town = (queryParameters["receiver-town"] ?? EMPTYSTRING)
- .replacingOccurrences(of: "+", with: SPACE)
+ sender = param(key: "sender-name", from: queryParameters)
+ receiver = param(key: "receiver-name", from: queryParameters)
+ postalCode = param(key: "receiver-postal-code", from: queryParameters)
+ town = param(key: "receiver-town", from: queryParameters)
amountStr = queryParameters["amount"] ?? EMPTYSTRING
messageStr = queryParameters["message"] ?? EMPTYSTRING
}
diff --git a/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift b/TalerWallet1/Views/Transactions/ManualDetailsWireV.swift
@@ -249,10 +249,14 @@ struct ManualDetailsWireV: View {
step2i
payeeCode
if let receiverZip {
- payeeZip()
+ if !receiverZip.isEmpty {
+ payeeZip()
+ }
}
if let receiverTown {
- payeeTown()
+ if !receiverTown.isEmpty {
+ payeeTown()
+ }
}
ibanCode
} else {