From be94ebfc7f17ca9cb7c58f7e3552f71abecafc73 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 24 Sep 2025 15:27:44 +0200 Subject: [PATCH] The check for payment now also make an api call --- PadelClubData/Subscriptions/Guard.swift | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/PadelClubData/Subscriptions/Guard.swift b/PadelClubData/Subscriptions/Guard.swift index 2164667..bb9ed87 100644 --- a/PadelClubData/Subscriptions/Guard.swift +++ b/PadelClubData/Subscriptions/Guard.swift @@ -266,7 +266,26 @@ import Combine // return units.reduce(0) { $0 + $1.purchasedQuantity } } - public func paymentForNewTournament() -> TournamentPayment? { + struct CanCreateResponse: Decodable { var canCreate: Bool } + + public func paymentForNewTournament() async -> TournamentPayment? { + + if let payment = self.localPaymentForNewTournament() { + return payment + } else if let services = try? StoreCenter.main.service() { + do { + let response: CanCreateResponse = try await services.run(path: "is_granted_unlimited_access/", method: .get, requiresToken: true) + if response.canCreate { + return .unlimited + } + } catch { + Logger.error(error) + } + } + return nil + } + + public func localPaymentForNewTournament() -> TournamentPayment? { switch self.currentPlan { case .monthlyUnlimited: