From 1769509024e3a435c2f45a351041dcbaa12554d1 Mon Sep 17 00:00:00 2001 From: Laurent Date: Tue, 30 Apr 2024 15:13:00 +0200 Subject: [PATCH] Adds try/catch for Store changes --- PadelClub/Views/Planning/PlanningSettingsView.swift | 7 ++++++- PadelClub/Views/Planning/SchedulerView.swift | 10 ++++++++-- PadelClub/Views/Tournament/FileImportView.swift | 7 ++++++- .../Components/TournamentClubSettingsView.swift | 7 ++++++- .../Components/TournamentGeneralSettingsView.swift | 7 ++++++- .../TournamentMatchFormatsSettingsView.swift | 7 ++++++- .../Screen/Components/UpdateSourceRankDateView.swift | 11 ++++++----- .../Tournament/Screen/InscriptionManagerView.swift | 7 ++++++- PadelClub/Views/Tournament/TournamentView.swift | 7 ++++++- 9 files changed, 56 insertions(+), 14 deletions(-) diff --git a/PadelClub/Views/Planning/PlanningSettingsView.swift b/PadelClub/Views/Planning/PlanningSettingsView.swift index 8819483..1b47663 100644 --- a/PadelClub/Views/Planning/PlanningSettingsView.swift +++ b/PadelClub/Views/Planning/PlanningSettingsView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage struct PlanningSettingsView: View { @EnvironmentObject var dataStore: DataStore @@ -216,7 +217,11 @@ struct PlanningSettingsView: View { } private func _save() { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } } diff --git a/PadelClub/Views/Planning/SchedulerView.swift b/PadelClub/Views/Planning/SchedulerView.swift index 4ddc395..8785ecf 100644 --- a/PadelClub/Views/Planning/SchedulerView.swift +++ b/PadelClub/Views/Planning/SchedulerView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage extension GroupStage: Schedulable { func titleLabel() -> String { @@ -39,8 +40,13 @@ struct SchedulerView: View { groupStages.forEach { groupStage in groupStage.updateMatchFormat(tournament.groupStageMatchFormat) } - try? dataStore.tournaments.addOrUpdate(instance: tournament) - try? dataStore.groupStages.addOrUpdate(contentOfs: groupStages) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + try dataStore.groupStages.addOrUpdate(contentOfs: groupStages) + } catch { + Logger.error(error) + } + } ForEach(tournament.groupStages()) { diff --git a/PadelClub/Views/Tournament/FileImportView.swift b/PadelClub/Views/Tournament/FileImportView.swift index 5a4a05c..727b9da 100644 --- a/PadelClub/Views/Tournament/FileImportView.swift +++ b/PadelClub/Views/Tournament/FileImportView.swift @@ -7,6 +7,7 @@ import SwiftUI import TipKit +import LeStorage struct FileImportView: View { @EnvironmentObject var dataStore: DataStore @@ -294,7 +295,11 @@ struct FileImportView: View { } private func _save() { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } } diff --git a/PadelClub/Views/Tournament/Screen/Components/TournamentClubSettingsView.swift b/PadelClub/Views/Tournament/Screen/Components/TournamentClubSettingsView.swift index 7925384..7d8b320 100644 --- a/PadelClub/Views/Tournament/Screen/Components/TournamentClubSettingsView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/TournamentClubSettingsView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage struct TournamentClubSettingsView: View { @Environment(Tournament.self) private var tournament: Tournament @@ -67,7 +68,11 @@ struct TournamentClubSettingsView: View { } } .onChange(of: tournament.courtCount) { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } .navigationDestination(item: $selectedCourt) { court in CourtView(court: court) diff --git a/PadelClub/Views/Tournament/Screen/Components/TournamentGeneralSettingsView.swift b/PadelClub/Views/Tournament/Screen/Components/TournamentGeneralSettingsView.swift index 330996a..7f2fad4 100644 --- a/PadelClub/Views/Tournament/Screen/Components/TournamentGeneralSettingsView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/TournamentGeneralSettingsView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage struct TournamentGeneralSettingsView: View { @Environment(Tournament.self) private var tournament: Tournament @@ -103,7 +104,11 @@ struct TournamentGeneralSettingsView: View { } private func _save() { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } } diff --git a/PadelClub/Views/Tournament/Screen/Components/TournamentMatchFormatsSettingsView.swift b/PadelClub/Views/Tournament/Screen/Components/TournamentMatchFormatsSettingsView.swift index a724eb6..c4fae1c 100644 --- a/PadelClub/Views/Tournament/Screen/Components/TournamentMatchFormatsSettingsView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/TournamentMatchFormatsSettingsView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage struct TournamentMatchFormatsSettingsView: View { @Environment(NavigationViewModel.self) var navigation: NavigationViewModel @@ -99,7 +100,11 @@ struct TournamentMatchFormatsSettingsView: View { } private func _save() { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } } diff --git a/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift b/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift index 4cd9f91..d7f58c6 100644 --- a/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage struct UpdateSourceRankDateView: View { @EnvironmentObject var dataStore: DataStore @@ -37,12 +38,12 @@ struct UpdateSourceRankDateView: View { Task { do { try await tournament.updateRank(to: currentRankSourceDate) - await MainActor.run { + try await MainActor.run { tournament.unsortedPlayers().forEach { player in player.setWeight(in: tournament) } - try? dataStore.playerRegistrations.addOrUpdate(contentOfs: tournament.unsortedPlayers()) + try dataStore.playerRegistrations.addOrUpdate(contentOfs: tournament.unsortedPlayers()) tournament.unsortedTeams().forEach { team in team.setWeight(from: team.players()) @@ -51,15 +52,15 @@ struct UpdateSourceRankDateView: View { } } - try? dataStore.teamRegistrations.addOrUpdate(contentOfs: tournament.unsortedTeams()) + try dataStore.teamRegistrations.addOrUpdate(contentOfs: tournament.unsortedTeams()) - try? dataStore.tournaments.addOrUpdate(instance: tournament) + try dataStore.tournaments.addOrUpdate(instance: tournament) updatingRank = false confirmUpdateRank = false } } catch { - + Logger.error(error) } } }.disabled(updatingRank) diff --git a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift index f011995..ea46289 100644 --- a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift +++ b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift @@ -7,6 +7,7 @@ import SwiftUI import TipKit +import LeStorage struct InscriptionManagerView: View { @EnvironmentObject var dataStore: DataStore @@ -804,7 +805,11 @@ struct InscriptionManagerView: View { } private func _save() { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } } diff --git a/PadelClub/Views/Tournament/TournamentView.swift b/PadelClub/Views/Tournament/TournamentView.swift index 095b7e6..977dd13 100644 --- a/PadelClub/Views/Tournament/TournamentView.swift +++ b/PadelClub/Views/Tournament/TournamentView.swift @@ -6,6 +6,7 @@ // import SwiftUI +import LeStorage struct TournamentView: View { @EnvironmentObject var dataStore: DataStore @@ -126,7 +127,11 @@ struct TournamentView: View { } private func _save() { - try? dataStore.tournaments.addOrUpdate(instance: tournament) + do { + try dataStore.tournaments.addOrUpdate(instance: tournament) + } catch { + Logger.error(error) + } } }