Make patch for alexisledu

multistore
Laurent 1 year ago
parent 6d36f7b21e
commit 5e7f0eec86
  1. 14
      PadelClub.xcodeproj/project.pbxproj
  2. 2
      PadelClub/Data/Club.swift
  3. 52
      PadelClub/Utils/Patcher.swift
  4. 6
      PadelClub/Views/Navigation/Toolbox/ToolboxView.swift

@ -43,6 +43,7 @@
C4A47DA92B85F82100ADC637 /* ChangePasswordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DA82B85F82100ADC637 /* ChangePasswordView.swift */; }; C4A47DA92B85F82100ADC637 /* ChangePasswordView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DA82B85F82100ADC637 /* ChangePasswordView.swift */; };
C4A47DAD2B85FCCD00ADC637 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DAC2B85FCCD00ADC637 /* User.swift */; }; C4A47DAD2B85FCCD00ADC637 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DAC2B85FCCD00ADC637 /* User.swift */; };
C4A47DB32B86387500ADC637 /* AccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DB22B86387500ADC637 /* AccountView.swift */; }; C4A47DB32B86387500ADC637 /* AccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DB22B86387500ADC637 /* AccountView.swift */; };
C4B3A1552C2581DA0078EAA8 /* Patcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4B3A1542C2581DA0078EAA8 /* Patcher.swift */; };
C4EC6F572BE92CAC000CEAB4 /* local.plist in Resources */ = {isa = PBXBuildFile; fileRef = C4EC6F562BE92CAC000CEAB4 /* local.plist */; }; C4EC6F572BE92CAC000CEAB4 /* local.plist in Resources */ = {isa = PBXBuildFile; fileRef = C4EC6F562BE92CAC000CEAB4 /* local.plist */; };
C4EC6F592BE92D88000CEAB4 /* PListReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EC6F582BE92D88000CEAB4 /* PListReader.swift */; }; C4EC6F592BE92D88000CEAB4 /* PListReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EC6F582BE92D88000CEAB4 /* PListReader.swift */; };
FF025AD82BD0C10F00A86CF8 /* TeamHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF025AD72BD0C10F00A86CF8 /* TeamHeaderView.swift */; }; FF025AD82BD0C10F00A86CF8 /* TeamHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF025AD72BD0C10F00A86CF8 /* TeamHeaderView.swift */; };
@ -329,6 +330,7 @@
C4A47DA82B85F82100ADC637 /* ChangePasswordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangePasswordView.swift; sourceTree = "<group>"; }; C4A47DA82B85F82100ADC637 /* ChangePasswordView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangePasswordView.swift; sourceTree = "<group>"; };
C4A47DAC2B85FCCD00ADC637 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; }; C4A47DAC2B85FCCD00ADC637 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
C4A47DB22B86387500ADC637 /* AccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountView.swift; sourceTree = "<group>"; }; C4A47DB22B86387500ADC637 /* AccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountView.swift; sourceTree = "<group>"; };
C4B3A1542C2581DA0078EAA8 /* Patcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Patcher.swift; sourceTree = "<group>"; };
C4EC6F562BE92CAC000CEAB4 /* local.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = local.plist; sourceTree = "<group>"; }; C4EC6F562BE92CAC000CEAB4 /* local.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = local.plist; sourceTree = "<group>"; };
C4EC6F582BE92D88000CEAB4 /* PListReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PListReader.swift; sourceTree = "<group>"; }; C4EC6F582BE92D88000CEAB4 /* PListReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PListReader.swift; sourceTree = "<group>"; };
FF025AD72BD0C10F00A86CF8 /* TeamHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TeamHeaderView.swift; sourceTree = "<group>"; }; FF025AD72BD0C10F00A86CF8 /* TeamHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TeamHeaderView.swift; sourceTree = "<group>"; };
@ -1264,23 +1266,24 @@
FFF8ACD02B9238A2008466FA /* Utils */ = { FFF8ACD02B9238A2008466FA /* Utils */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
FF6EC9072B947A1E00EA7F5A /* Network */,
FF8E1CE52C006E0200184680 /* Alphabet.swift */,
FFA6D7862BB0B7A2003A31F3 /* CloudConvert.swift */, FFA6D7862BB0B7A2003A31F3 /* CloudConvert.swift */,
FF92680A2BCEE3E10080F940 /* ContactManager.swift */, FF92680A2BCEE3E10080F940 /* ContactManager.swift */,
FF1DC55A2BAB80C400FD8220 /* DisplayContext.swift */, FF1DC55A2BAB80C400FD8220 /* DisplayContext.swift */,
FFA6D7842BB0B795003A31F3 /* FileImportManager.swift */, FFA6D7842BB0B795003A31F3 /* FileImportManager.swift */,
FF1F4B722BFA00FB000B4573 /* HtmlGenerator.swift */,
FF1F4B732BFA00FC000B4573 /* HtmlService.swift */,
C49EF0432BE286780077B5AA /* Key.swift */, C49EF0432BE286780077B5AA /* Key.swift */,
FFC1E1072BAC29FC008D6F59 /* LocationManager.swift */, FFC1E1072BAC29FC008D6F59 /* LocationManager.swift */,
FF92680C2BCEE5EA0080F940 /* NetworkMonitor.swift */, FF92680C2BCEE5EA0080F940 /* NetworkMonitor.swift */,
FF1F4B722BFA00FB000B4573 /* HtmlGenerator.swift */,
FF1F4B732BFA00FC000B4573 /* HtmlService.swift */,
FF8F26352BAD523300650388 /* PadelRule.swift */, FF8F26352BAD523300650388 /* PadelRule.swift */,
C4B3A1542C2581DA0078EAA8 /* Patcher.swift */,
C4EC6F582BE92D88000CEAB4 /* PListReader.swift */,
FFF8ACD32B92392C008466FA /* SourceFileManager.swift */, FFF8ACD32B92392C008466FA /* SourceFileManager.swift */,
FF0EC51D2BB16F680056B6D1 /* SwiftParser.swift */, FF0EC51D2BB16F680056B6D1 /* SwiftParser.swift */,
FF1DC5582BAB767000FD8220 /* Tips.swift */, FF1DC5582BAB767000FD8220 /* Tips.swift */,
C49EF01A2BD6A1E80077B5AA /* URLs.swift */, C49EF01A2BD6A1E80077B5AA /* URLs.swift */,
FF8E1CE52C006E0200184680 /* Alphabet.swift */,
FF6EC9072B947A1E00EA7F5A /* Network */,
C4EC6F582BE92D88000CEAB4 /* PListReader.swift */,
); );
path = Utils; path = Utils;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1512,6 +1515,7 @@
FF5D30532BD94E2E00F2B93D /* PlayerHolder.swift in Sources */, FF5D30532BD94E2E00F2B93D /* PlayerHolder.swift in Sources */,
FF11628C2BD05267000C4809 /* LoserRoundStepScheduleEditorView.swift in Sources */, FF11628C2BD05267000C4809 /* LoserRoundStepScheduleEditorView.swift in Sources */,
FF53FBB82BFB302B0051D4C3 /* ClubCourtSetupView.swift in Sources */, FF53FBB82BFB302B0051D4C3 /* ClubCourtSetupView.swift in Sources */,
C4B3A1552C2581DA0078EAA8 /* Patcher.swift in Sources */,
FF089EBF2BB0B14600F0AEC7 /* FileImportView.swift in Sources */, FF089EBF2BB0B14600F0AEC7 /* FileImportView.swift in Sources */,
C4A47D9F2B7D0BCE00ADC637 /* StepperView.swift in Sources */, C4A47D9F2B7D0BCE00ADC637 /* StepperView.swift in Sources */,
FFC83D4F2BB807D100750834 /* RoundsView.swift in Sources */, FFC83D4F2BB807D100750834 /* RoundsView.swift in Sources */,

@ -57,7 +57,7 @@ class Club : ModelObject, Storable, Hashable {
override func copyFromServerInstance(_ instance: any Storable) -> Bool { override func copyFromServerInstance(_ instance: any Storable) -> Bool {
guard let copy = instance as? Club else { return false } guard let copy = instance as? Club else { return false }
self.broadcastCode = copy.broadcastCode self.broadcastCode = copy.broadcastCode
Logger.log("write code: \(self.broadcastCode)") // Logger.log("write code: \(self.broadcastCode)")
return true return true
} }

@ -0,0 +1,52 @@
//
// Patcher.swift
// PadelClub
//
// Created by Laurent Morvillier on 21/06/2024.
//
import Foundation
import LeStorage
enum Patch: String, CaseIterable {
case alexisLeDu
var id: String {
return "padelclub.app.patch.\(self.rawValue)"
}
}
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)
}
}
}
fileprivate static func _applyPatch(_ patch: Patch) {
switch patch {
case .alexisLeDu: self._patchAlexisLeDu()
}
}
fileprivate static func _patchAlexisLeDu() {
guard Store.main.userId == "94f45ed2-8938-4c32-a4b6-e4525073dd33" else { return }
Logger.log(">>> Start patch...")
let clubs = DataStore.shared.clubs
clubs.resetApiCalls()
for club in clubs.filter({ $0.creator == "d5060b89-e979-4c19-bf78-e459a6ed5318"}) {
club.creator = Store.main.userId
clubs.writeChangeAndInsertOnServer(instance: club)
}
}
}

@ -20,6 +20,12 @@ struct ToolboxView: View {
Section { Section {
Text("Version de l'application").badge(PadelClubApp.appVersion) Text("Version de l'application").badge(PadelClubApp.appVersion)
SupportButtonView(contentIsUnavailable: false) SupportButtonView(contentIsUnavailable: false)
Button {
Patcher.applyIfNeeded()
} label: {
Text("Patch")
}
} }
#if DEBUG #if DEBUG

Loading…
Cancel
Save