Update user id management

multistore
Laurent 1 year ago
parent f72ed21afa
commit f8742dca15
  1. 2
      PadelClub/Views/Cashier/Event/EventCreationView.swift
  2. 4
      PadelClub/Views/Navigation/MainView.swift
  3. 2
      PadelClub/Views/Navigation/Organizer/TournamentOrganizerView.swift
  4. 2
      PadelClub/Views/Navigation/Toolbox/DebugSettingsView.swift
  5. 10
      PadelClub/Views/Subscription/Guard.swift
  6. 5
      PadelClub/Views/Subscription/StoreManager.swift
  7. 4
      PadelClubTests/ServerDataTests.swift

@ -93,7 +93,7 @@ struct EventCreationView: View {
Section {
RowButtonView("Valider") {
let event = Event(creator: dataStore.user.id, name: eventName)
let event = Event(creator: Store.main.userId, name: eventName)
event.club = selectedClub?.id
tournaments.forEach { tournament in
tournament.event = event.id

@ -59,8 +59,8 @@ struct MainView: View {
// PadelClubView()
// .tabItem(for: .padelClub)
}
.id(Store.main.currentUserUUID)
.onChange(of: Store.main.currentUserUUID) {
.id(Store.main.userId)
.onChange(of: Store.main.userId) {
navigation.path.removeLast(navigation.path.count)
}
.environmentObject(dataStore)

@ -43,7 +43,7 @@ struct TournamentOrganizerView: View {
}
}
}
.onChange(of: Store.main.currentUserUUID) {
.onChange(of: Store.main.userId) {
navigation.organizerTournament = nil
}
}

@ -11,7 +11,7 @@ import LeStorage
struct DebugSettingsView: View {
var body: some View {
List {
LabeledContent("UUID", value: Store.main.currentUserUUID?.uuidString ?? "")
LabeledContent("UUID", value: Store.main.userId ?? "")
LabeledContent("User Name", value: Store.main.userName() ?? "")
LabeledContent("Token", value: Store.main.token() ?? "")
LabeledContent("Server", value: PListReader.readString(plist: "local", key: "server") ?? "")

@ -115,7 +115,7 @@ import LeStorage
fileprivate func _addPurchaseIfPossible(transaction: StoreKit.Transaction) throws {
if self.purchases.hasLoadedFromServer {
if self._purchaseById(transaction.originalID) == nil {
let purchase: Purchase = transaction.purchase()
let purchase: Purchase = try transaction.purchase()
try self.purchases.addOrUpdate(instance: purchase)
}
}
@ -157,7 +157,7 @@ import LeStorage
func userFilteredPurchases() -> [StoreKit.Transaction] {
// Logger.log("self.purchasedTransactions = \(self.purchasedTransactions.count)")
guard let currentUserUUID: UUID = Store.main.currentUserUUID else {
guard let userId = Store.main.userId, let currentUserUUID: UUID = UUID(uuidString: userId) else {
return []
}
@ -253,8 +253,10 @@ struct PurchaseRow: Identifiable {
fileprivate extension StoreKit.Transaction {
func purchase() -> Purchase {
let userId = Store.main.mandatoryUserUUID().uuidString
func purchase() throws -> Purchase {
guard let userId = Store.main.userId else {
throw StoreError.missingUserId
}
return Purchase(user: userId,
identifier: self.originalID,
purchaseDate: self.purchaseDate,

@ -100,8 +100,11 @@ class StoreManager {
func purchase(_ product: Product, quantity: Int? = nil) async throws -> StoreKit.Transaction? {
Logger.log("Store purchase started...")
guard let userId = Store.main.userId, let uuid: UUID = UUID(uuidString: userId) else {
throw StoreError.missingUserId
}
var options: Set<Product.PurchaseOption> = []
let uuid: UUID = Store.main.mandatoryUserUUID()
let tokenOption = Product.PurchaseOption.appAccountToken(uuid)
options.insert(tokenOption)

@ -69,7 +69,7 @@ final class ServerDataTests: XCTestCase {
func testEvent() async throws {
guard let userId = Store.main.currentUserUUID?.uuidString else {
guard let userId = Store.main.userId else {
assertionFailure("missing user UUID")
return
}
@ -337,7 +337,7 @@ final class ServerDataTests: XCTestCase {
func testPurchase() async throws {
guard let userId = Store.main.currentUserUUID?.uuidString.lowercased() else {
guard let userId = Store.main.userId else {
assertionFailure("missing user UUID")
return
}

Loading…
Cancel
Save