From 36a834c878a4cb27da5b1a7041fe5d8a721e6f44 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 8 Aug 2022 10:34:03 +0800 Subject: [PATCH] Format sync date when saving/restoring. Create date before sync starts We want to create the sync date before the sync starts so we make sure there isn't a race condition between our processing of items and the server receiving new changes. --- .../Sources/App/Views/Home/HomeFeedViewModel.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift index 330c2bcca..5f721053e 100644 --- a/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift +++ b/apple/OmnivoreKit/Sources/App/Views/Home/HomeFeedViewModel.swift @@ -30,9 +30,9 @@ import Views // @AppStorage(UserDefaultKey.lastSelectedLinkedItemFilter.rawValue) // TODO: missing value here? // TODO: delete this value when needed (logout, clear core data, new app version - @AppStorage(UserDefaultKey.lastItemSyncTime.rawValue) var lastItemSyncTime = Date( + @AppStorage(UserDefaultKey.lastItemSyncTime.rawValue) var lastItemSyncTime = DateFormatter.formatterISO8601.string(from: Date( timeIntervalSinceReferenceDate: 0 - ).toString() + )) var cursor: String? @@ -62,6 +62,7 @@ import Views } func loadItems(dataService: DataService, isRefresh: Bool) async { + let syncStartTime = Date() let thisSearchIdx = searchIdx searchIdx += 1 @@ -75,10 +76,9 @@ import Views // Sync items if necessary let lastSyncDate = dateFormatter.date(from: lastItemSyncTime) ?? Date(timeIntervalSinceReferenceDate: 0) - let syncResult = try? await dataService.syncLinkedItems(since: lastSyncDate, cursor: nil) if syncResult != nil { - lastItemSyncTime = Date().toString() + lastItemSyncTime = dateFormatter.string(from: syncStartTime) } let queryResult = try? await dataService.loadLinkedItems(