Fixes issue with failing syncs

sync3
Laurent 1 month ago
parent 6d3ed27151
commit ffe9794f28
  1. 52
      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,40 +575,38 @@ 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
let syncGetCollection: ApiCallCollection<GetSyncData> = try self.apiCallCollection() do {
if await syncGetCollection.hasPendingCalls() == false { let syncGetCollection: ApiCallCollection<GetSyncData> = try self.apiCallCollection()
Logger.log("*** START sync: \(lastSync)") if await syncGetCollection.hasPendingCalls() == false {
let getSyncData = GetSyncData() Logger.log("*** START sync: \(lastSync)")
getSyncData.date = lastSync let getSyncData = GetSyncData()
try await syncGetCollection.sendGetRequest(instance: getSyncData) getSyncData.date = lastSync
try await syncGetCollection.sendGetRequest(instance: getSyncData)
}
} catch {
self.synchronizesData = false
Logger.error(error)
return error
} }
self.synchronizesData = false
// if await syncGetCollection.hasPendingCalls() { return nil
// await syncGetCollection.rescheduleImmediately()
// Logger.log("=> reschedule")
// } else {
// Logger.log("=> send GET")
// let getSyncData = GetSyncData()
// 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