Fixes issue with failing syncs

sync3
Laurent 1 month ago
parent 6d3ed27151
commit ffe9794f28
  1. 40
      LeStorage/StoreCenter.swift
  2. 7
      LeStorage/WebSocketManager.swift

@ -177,11 +177,7 @@ public class StoreCenter {
@objc fileprivate func _launchSynchronization() { @objc fileprivate func _launchSynchronization() {
Task { Task {
do { await self.synchronizeLastUpdates()
try await self.synchronizeLastUpdates()
} catch {
Logger.error(error)
}
} }
} }
@ -579,22 +575,24 @@ public class StoreCenter {
} }
/// Basically asks the server for new content /// Basically asks the server for new content
public func synchronizeLastUpdates() async throws { @discardableResult public func synchronizeLastUpdates() async -> Error? {
Logger.log("synchronizeLastUpdates: self.synchronizesData: \(self.synchronizesData) / self.isAuthenticated = \(self.isAuthenticated) / self.useSynchronization = \(self.useSynchronization)")
guard self.isAuthenticated, self.useSynchronization else { guard self.isAuthenticated, self.useSynchronization else {
return return nil
} }
guard !self.synchronizesData else { guard !self.synchronizesData else {
// Logger.log("*** blocked sync")
self.wantsToSynchronize = true self.wantsToSynchronize = true
return return nil
} }
Logger.log("synchronizeLastUpdates started...")
self.synchronizesData = true self.synchronizesData = true
self.wantsToSynchronize = false self.wantsToSynchronize = false
let lastSync = self._settingsStorage.item.lastSynchronization let lastSync = self._settingsStorage.item.lastSynchronization
do {
let syncGetCollection: ApiCallCollection<GetSyncData> = try self.apiCallCollection() let syncGetCollection: ApiCallCollection<GetSyncData> = try self.apiCallCollection()
if await syncGetCollection.hasPendingCalls() == false { if await syncGetCollection.hasPendingCalls() == false {
Logger.log("*** START sync: \(lastSync)") Logger.log("*** START sync: \(lastSync)")
@ -602,17 +600,13 @@ public class StoreCenter {
getSyncData.date = lastSync getSyncData.date = lastSync
try await syncGetCollection.sendGetRequest(instance: getSyncData) try await syncGetCollection.sendGetRequest(instance: getSyncData)
} }
} catch {
// if await syncGetCollection.hasPendingCalls() { self.synchronizesData = false
// await syncGetCollection.rescheduleImmediately() Logger.error(error)
// Logger.log("=> reschedule") return error
// } else { }
// Logger.log("=> send GET") self.synchronizesData = false
// let getSyncData = GetSyncData() return nil
// getSyncData.date = lastSync
// try await syncGetCollection.sendGetRequest(instance: getSyncData)
// }
} }
@discardableResult func testSynchronizeOnceAsync() async throws -> Data { @discardableResult func testSynchronizeOnceAsync() async throws -> Data {
@ -683,11 +677,7 @@ public class StoreCenter {
self.synchronizesData = false self.synchronizesData = false
if self.wantsToSynchronize { if self.wantsToSynchronize {
do { await self.synchronizeLastUpdates()
try await self.synchronizeLastUpdates()
} catch {
Logger.error(error)
}
} }
// Logger.log(">>> SYNC ENDED") // Logger.log(">>> SYNC ENDED")

@ -71,12 +71,7 @@ class WebSocketManager: ObservableObject {
} }
Task { Task {
do { await self.storeCenter.synchronizeLastUpdates()
// Logger.log("Websocket notif, sync...")
try await self.storeCenter.synchronizeLastUpdates()
} catch {
Logger.error(error)
}
} }
case .data(let data): case .data(let data):

Loading…
Cancel
Save