last check on revision date lookup

This commit is contained in:
Kyle Spearrin 2017-06-20 23:01:02 -04:00
parent 8ff336d103
commit 39cc97e6e5
1 changed files with 19 additions and 4 deletions

View File

@ -8,6 +8,7 @@
this.cryptoService = cryptoService; this.cryptoService = cryptoService;
this.syncInProgress = false; this.syncInProgress = false;
this.logoutCallback = logoutCallback; this.logoutCallback = logoutCallback;
this.lastRevisionCheck = null;
initSyncService(); initSyncService();
}; };
@ -30,7 +31,13 @@ function initSyncService() {
self.userService.getUserId(function (userId) { self.userService.getUserId(function (userId) {
var now = new Date(); 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) { if (!needsSync) {
self.setLastSync(now, function () { self.setLastSync(now, function () {
self.syncCompleted(false); self.syncCompleted(false);
@ -65,19 +72,27 @@ function initSyncService() {
} }
if (forceSync) { if (forceSync) {
callback(true); callback(true, false);
return; 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.getLastSync(function (lastSync) {
self.apiService.getAccountRevisionDate(function (response) { self.apiService.getAccountRevisionDate(function (response) {
var accountRevisionDate = new Date(response); var accountRevisionDate = new Date(response);
if (lastSync && accountRevisionDate <= lastSync) { if (lastSync && accountRevisionDate <= lastSync) {
callback(false); callback(false, false);
return; return;
} }
callback(true); callback(true, false);
}); });
}); });
} }