From 5a860617fb23a033c2bcbc18c84baff7a674391c Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 26 Jul 2024 15:02:25 +0200 Subject: [PATCH 1/5] Fix logout issues hopefully --- PadelClub/Data/DataStore.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/PadelClub/Data/DataStore.swift b/PadelClub/Data/DataStore.swift index c4a85fa..bec3c1d 100644 --- a/PadelClub/Data/DataStore.swift +++ b/PadelClub/Data/DataStore.swift @@ -166,15 +166,15 @@ class DataStore: ObservableObject { do { let services = try StoreCenter.main.service() + Logger.log("1 LOGOUT") try await services.logout() } catch { Logger.error(error) } } - - StoreCenter.main.disconnect() + StoreCenter.main.collectionsCanSynchronize = false - + self.tournaments.reset() self.clubs.reset() self.courts.reset() @@ -190,7 +190,9 @@ class DataStore: ObservableObject { self.user = self._temporaryLocalUser.item ?? User.placeHolder() self.user.clubs.removeAll() - + + StoreCenter.main.disconnect() + } func copyToLocalServer(tournament: Tournament) { From f014aa2b4864cdaf0044d02314e058266dd455dc Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 26 Jul 2024 15:06:39 +0200 Subject: [PATCH 2/5] Fix failing logout issue --- PadelClub/Data/DataStore.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PadelClub/Data/DataStore.swift b/PadelClub/Data/DataStore.swift index bec3c1d..dc5aaf8 100644 --- a/PadelClub/Data/DataStore.swift +++ b/PadelClub/Data/DataStore.swift @@ -171,8 +171,10 @@ class DataStore: ObservableObject { } catch { Logger.error(error) } + + StoreCenter.main.disconnect() } - + StoreCenter.main.collectionsCanSynchronize = false self.tournaments.reset() @@ -191,8 +193,6 @@ class DataStore: ObservableObject { self.user = self._temporaryLocalUser.item ?? User.placeHolder() self.user.clubs.removeAll() - StoreCenter.main.disconnect() - } func copyToLocalServer(tournament: Tournament) { From c820e1cbbdff246595cf834d919c1ddfb7996d7a Mon Sep 17 00:00:00 2001 From: Laurent Date: Fri, 26 Jul 2024 15:11:30 +0200 Subject: [PATCH 3/5] Fix again --- PadelClub/Data/DataStore.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PadelClub/Data/DataStore.swift b/PadelClub/Data/DataStore.swift index dc5aaf8..4f2cf93 100644 --- a/PadelClub/Data/DataStore.swift +++ b/PadelClub/Data/DataStore.swift @@ -166,13 +166,11 @@ class DataStore: ObservableObject { do { let services = try StoreCenter.main.service() - Logger.log("1 LOGOUT") try await services.logout() } catch { Logger.error(error) } - StoreCenter.main.disconnect() } StoreCenter.main.collectionsCanSynchronize = false @@ -193,6 +191,8 @@ class DataStore: ObservableObject { self.user = self._temporaryLocalUser.item ?? User.placeHolder() self.user.clubs.removeAll() + StoreCenter.main.disconnect() + } func copyToLocalServer(tournament: Tournament) { From 6b651f85daf86f3562cf10dc477e4a0f082ff568 Mon Sep 17 00:00:00 2001 From: Raz Date: Sat, 27 Jul 2024 08:44:11 +0200 Subject: [PATCH 4/5] v106 --- PadelClub.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PadelClub.xcodeproj/project.pbxproj b/PadelClub.xcodeproj/project.pbxproj index 13e1517..61b1774 100644 --- a/PadelClub.xcodeproj/project.pbxproj +++ b/PadelClub.xcodeproj/project.pbxproj @@ -1935,7 +1935,7 @@ CODE_SIGN_ENTITLEMENTS = PadelClub/PadelClub.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 105; + CURRENT_PROJECT_VERSION = 106; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; @@ -1985,7 +1985,7 @@ CODE_SIGN_ENTITLEMENTS = PadelClub/PadelClub.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 105; + CURRENT_PROJECT_VERSION = 106; DEFINES_MODULE = YES; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; DEVELOPMENT_TEAM = BQ3Y44M3Q6; From 545976e5f20e4167d6da0f9175193cb2f930d303 Mon Sep 17 00:00:00 2001 From: Laurent Date: Sat, 27 Jul 2024 12:17:16 +0200 Subject: [PATCH 5/5] Adds a way to delete a user account --- PadelClub/Data/DataStore.swift | 26 +++++++++++++++++++++++++- PadelClub/Views/User/AccountView.swift | 7 +++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/PadelClub/Data/DataStore.swift b/PadelClub/Data/DataStore.swift index 4f2cf93..2a05d74 100644 --- a/PadelClub/Data/DataStore.swift +++ b/PadelClub/Data/DataStore.swift @@ -171,8 +171,33 @@ class DataStore: ObservableObject { Logger.error(error) } + DispatchQueue.main.async { + self._localDisconnect() + } } + } + + func deleteAccount() { + + Task { + do { + let services = try StoreCenter.main.service() + try await services.deleteAccount() + } catch { + Logger.error(error) + } + + DispatchQueue.main.async { + self._localDisconnect() + } + + } + + } + + fileprivate func _localDisconnect() { + StoreCenter.main.collectionsCanSynchronize = false self.tournaments.reset() @@ -192,7 +217,6 @@ class DataStore: ObservableObject { self.user.clubs.removeAll() StoreCenter.main.disconnect() - } func copyToLocalServer(tournament: Tournament) { diff --git a/PadelClub/Views/User/AccountView.swift b/PadelClub/Views/User/AccountView.swift index 75d4627..e7583dc 100644 --- a/PadelClub/Views/User/AccountView.swift +++ b/PadelClub/Views/User/AccountView.swift @@ -22,6 +22,13 @@ struct AccountView: View { DataStore.shared.disconnect() handler() } + + Section { + RowButtonView("Supprimer mon compte", role: .destructive, confirmationMessage: "Voulez-vous vraiment supprimer définitivement votre compte et ses données associées ?") { + DataStore.shared.deleteAccount() + handler() + } + } }.navigationTitle(user.username) } }