taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit d60d925f2d7d60d29cce574a1cc0b16378fcf291
parent 9f29109a42ae088f832c99ffc50366e49e5fba6b
Author: Marc Stibane <marc@taler.net>
Date:   Mon, 22 Jun 2026 08:57:32 +0200

load discounts

Diffstat:
MTalerWallet1/Controllers/Controller.swift | 18++++++++++++++++++
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 {