commit d60d925f2d7d60d29cce574a1cc0b16378fcf291
parent 9f29109a42ae088f832c99ffc50366e49e5fba6b
Author: Marc Stibane <marc@taler.net>
Date: Mon, 22 Jun 2026 08:57:32 +0200
load discounts
Diffstat:
1 file changed, 18 insertions(+), 0 deletions(-)
diff --git a/TalerWallet1/Controllers/Controller.swift b/TalerWallet1/Controllers/Controller.swift
@@ -125,6 +125,7 @@ class Controller: ObservableObject {
@Published var haveProdBalance: Bool = false
@Published var balances: [Balance] = []
+ @Published var discounts: [Discount] = []
@Published var defaultExchanges: [DefaultExchange] = []
@Published var scannedURLs: [ScannedURL] = []
@@ -305,6 +306,7 @@ class Controller: ObservableObject {
currencyInfos = [:]
exchanges = []
balances = []
+ discounts = []
defaultExchanges = []
// printFonts()
// checkInternetConnection()
@@ -340,6 +342,22 @@ class Controller: ObservableObject {
}
return nil
}
+ // MARK: -
+ @MainActor
+ @discardableResult
+ func loadDiscounts(_ stack: CallStack,_ model: WalletModel) async -> Int? {
+ if let response = try? await model.listDiscounts(stack.push()) {
+ let reloaded = response.discounts
+ if reloaded != discounts {
+ self.logger.log("••Got new discounts, will redraw")
+ discounts = reloaded // redraw
+ } else {
+ self.logger.log("••Same discounts, no redraw")
+ }
+ return reloaded.count
+ }
+ return nil
+ }
// MARK: -
func exchange(for baseUrl: String) -> Exchange? {
for exchange in exchanges {