From 6fed11a541e8ec2704600e7df185e75bcb993874 Mon Sep 17 00:00:00 2001 From: Joy A Date: Fri, 10 Nov 2023 14:02:30 +0530 Subject: [PATCH] #1178 | Fix for latest completed sync telemetry checks --- packages/openchs-android/src/service/SyncService.js | 4 ++-- .../openchs-android/src/service/SyncTelemetryService.js | 8 ++++---- packages/openchs-android/src/task/Sync.js | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/openchs-android/src/service/SyncService.js b/packages/openchs-android/src/service/SyncService.js index 92f0ac5ce..394076d0b 100644 --- a/packages/openchs-android/src/service/SyncService.js +++ b/packages/openchs-android/src/service/SyncService.js @@ -109,8 +109,8 @@ class SyncService extends BaseService { } wasLastCompletedFullSyncDoneMoreThan12HoursAgo() { - let lastSynced = this.getService("syncTelemetryService").getAllCompletedFullSyncsSortedByDescSyncEndTime(); - return !_.isEmpty(lastSynced) && moment(lastSynced[0].syncEndTime).add(12, 'hours').isBefore(moment()); + let lastSynced = this.getService("syncTelemetryService").getLatestCompletedFullSync(); + return !_.isEmpty(lastSynced) && moment(lastSynced.syncEndTime).add(12, 'hours').isBefore(moment()); } logSyncCompleteEvent(syncStartTime) { diff --git a/packages/openchs-android/src/service/SyncTelemetryService.js b/packages/openchs-android/src/service/SyncTelemetryService.js index 9775130d6..3d3ee78b2 100644 --- a/packages/openchs-android/src/service/SyncTelemetryService.js +++ b/packages/openchs-android/src/service/SyncTelemetryService.js @@ -15,15 +15,15 @@ export default class SyncTelemetryService extends BaseService { return !_.isEmpty(results); } - getAllCompletedSyncsSortedByDescSyncEndTime() { + getLatestCompletedSync() { return this.db.objects(SyncTelemetry.schema.name) .filtered("syncStatus = $0", "complete") - .sorted('syncEndTime', true); + .sorted('syncEndTime', true)[0]; } - getAllCompletedFullSyncsSortedByDescSyncEndTime() { + getLatestCompletedFullSync() { return this.db.objects(SyncTelemetry.schema.name) .filtered("syncStatus = $0 AND syncSource <> $1", "complete", SyncService.syncSources.ONLY_UPLOAD_BACKGROUND_JOB) - .sorted('syncEndTime', true); + .sorted('syncEndTime', true)[0]; } } diff --git a/packages/openchs-android/src/task/Sync.js b/packages/openchs-android/src/task/Sync.js index e372abd42..8b36faa50 100644 --- a/packages/openchs-android/src/task/Sync.js +++ b/packages/openchs-android/src/task/Sync.js @@ -38,7 +38,7 @@ class Sync extends BaseTask { } await this.initDependencies(); - if(!this.wasLastCompletedSyncDoneMoreThanHalfAnHourAgo(globalContext)) { + if (!this.wasLastCompletedSyncDoneMoreThanHalfAnHourAgo(globalContext)) { General.logInfo("Sync", 'Skipping auto-sync since we had recently synced within the last half an hour'); return false; } @@ -73,8 +73,8 @@ class Sync extends BaseTask { wasLastCompletedSyncDoneMoreThanHalfAnHourAgo(globalContext) { const syncTelemetryService = globalContext.beanRegistry.getService("syncTelemetryService"); - const lastSynced = syncTelemetryService.getAllCompletedSyncsSortedByDescSyncEndTime(); - return !_.isEmpty(lastSynced) && moment(lastSynced[0].syncEndTime).add(30, 'minutes').isBefore(moment()); + const latestCompletedSync = syncTelemetryService.getLatestCompletedSync(); + return _.isEmpty(latestCompletedSync) || moment(latestCompletedSync.syncEndTime).add(30, 'minutes').isBefore(moment()); } performPostBackgroundSyncActions(globalContext) {