From 39cc97e6e5c1af04fb0d355d517eec46c6e00fe1 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 20 Jun 2017 23:01:02 -0400 Subject: [PATCH] last check on revision date lookup --- src/services/syncService.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/services/syncService.js b/src/services/syncService.js index a027c4264d..56892ff818 100644 --- a/src/services/syncService.js +++ b/src/services/syncService.js @@ -8,6 +8,7 @@ this.cryptoService = cryptoService; this.syncInProgress = false; this.logoutCallback = logoutCallback; + this.lastRevisionCheck = null; initSyncService(); }; @@ -30,7 +31,13 @@ function initSyncService() { self.userService.getUserId(function (userId) { var now = new Date(); - needsSyncing(self, forceSync, function (needsSync) { + needsSyncing(self, forceSync, function (needsSync, skipped) { + if (skipped) { + self.syncCompleted(false); + callback(false); + return; + } + if (!needsSync) { self.setLastSync(now, function () { self.syncCompleted(false); @@ -65,19 +72,27 @@ function initSyncService() { } if (forceSync) { - callback(true); + callback(true, false); return; } + var now = new Date(); + if (self.lastRevisionCheck && (now - self.lastRevisionCheck) < 10000) { + // can only check revision every 10 seconds + callback(false, true); + return; + } + self.lastRevisionCheck = now; + self.getLastSync(function (lastSync) { self.apiService.getAccountRevisionDate(function (response) { var accountRevisionDate = new Date(response); if (lastSync && accountRevisionDate <= lastSync) { - callback(false); + callback(false, false); return; } - callback(true); + callback(true, false); }); }); }