From fc982e5f079b1195dbd3ec3a33f186085fdd970e Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 24 Jun 2024 16:49:44 +0200 Subject: [PATCH] Adds button to import data from the dev server --- PadelClub/Utils/Patcher.swift | 78 ++++++++++++++++--- .../Navigation/Toolbox/ToolboxView.swift | 12 ++- 2 files changed, 79 insertions(+), 11 deletions(-) diff --git a/PadelClub/Utils/Patcher.swift b/PadelClub/Utils/Patcher.swift index 6960bd0..e295b42 100644 --- a/PadelClub/Utils/Patcher.swift +++ b/PadelClub/Utils/Patcher.swift @@ -10,6 +10,7 @@ import LeStorage enum Patch: String, CaseIterable { case alexisLeDu + case importDataFromDev var id: String { return "padelclub.app.patch.\(self.rawValue)" @@ -18,18 +19,23 @@ enum Patch: String, CaseIterable { class Patcher { - static func applyIfNeeded() { - for patch in Patch.allCases { - if UserDefaults.standard.value(forKey: patch.id) == nil { - self._applyPatch(patch) - UserDefaults.standard.setValue(true, forKey: patch.id) - } - } - } +// static func applyIfNeeded() { +// for patch in Patch.allCases { +// if UserDefaults.standard.value(forKey: patch.id) == nil { +// do { +// try self.applyPatch(patch) +// UserDefaults.standard.setValue(true, forKey: patch.id) +// } catch { +// Logger.error(error) +// } +// } +// } +// } - fileprivate static func _applyPatch(_ patch: Patch) { + static func applyPatch(_ patch: Patch) { switch patch { case .alexisLeDu: self._patchAlexisLeDu() + case .importDataFromDev: self._importDataFromDev() } } @@ -49,4 +55,58 @@ class Patcher { } + fileprivate static func _importDataFromDev() { + + guard let userId = Store.main.userId else { + return + } + + let services = Services(url: "https://xlr.alwaysdata.net/roads/") + if services.hasToken() { + + Task { + let clubs: [Club] = try await services.get() + let events: [Event] = try await services.get() + let tournaments: [Tournament] = try await services.get() + let rounds: [Round] = try await services.get() + let groupStages: [GroupStage] = try await services.get() + let matches: [Match] = try await services.get() + let teamRegistrations: [TeamRegistration] = try await services.get() + let teamScores: [TeamScore] = try await services.get() + let playerRegistrations: [PlayerRegistration] = try await services.get() + let courts: [Court] = try await services.get() + let dateIntervals: [DateInterval] = try await services.get() + +// for club in clubs { +// club.creator = userId +// } + for event in events { + event.creator = userId + if let clubId = event.club, DataStore.shared.clubs.findById(clubId) == nil { + if let club = clubs.first(where: { $0.id == clubId }) { + club.creator = userId + try? DataStore.shared.clubs.addOrUpdate(instance: club) + } + } + } + +// try DataStore.shared.clubs.addOrUpdate(contentOfs: clubs) + try DataStore.shared.events.addOrUpdate(contentOfs: events) + try DataStore.shared.tournaments.addOrUpdate(contentOfs: tournaments) + try DataStore.shared.rounds.addOrUpdate(contentOfs: rounds) + try DataStore.shared.groupStages.addOrUpdate(contentOfs: groupStages) + try DataStore.shared.matches.addOrUpdate(contentOfs: matches) + try DataStore.shared.teamRegistrations.addOrUpdate(contentOfs: teamRegistrations) + try DataStore.shared.teamScores.addOrUpdate(contentOfs: teamScores) + try DataStore.shared.playerRegistrations.addOrUpdate(contentOfs: playerRegistrations) + try DataStore.shared.courts.addOrUpdate(contentOfs: courts) + try DataStore.shared.dateIntervals.addOrUpdate(contentOfs: dateIntervals) + } + + } + + + + } + } diff --git a/PadelClub/Views/Navigation/Toolbox/ToolboxView.swift b/PadelClub/Views/Navigation/Toolbox/ToolboxView.swift index ca96e56..61811b5 100644 --- a/PadelClub/Views/Navigation/Toolbox/ToolboxView.swift +++ b/PadelClub/Views/Navigation/Toolbox/ToolboxView.swift @@ -23,12 +23,20 @@ struct ToolboxView: View { if Store.main.userId == "94f45ed2-8938-4c32-a4b6-e4525073dd33" { Button { - Patcher.applyIfNeeded() + Patcher.applyPatch(.alexisLeDu) } label: { Text("Patch") } } - + + #if DEBUG + Button { + Patcher.applyPatch(.importDataFromDev) + } label: { + Text("Import from dev") + } + #endif + } #if DEBUG