From eb84cfbef2a3443912b7e9be1dbd609f110e0f7c Mon Sep 17 00:00:00 2001 From: azivner Date: Mon, 10 Sep 2018 20:22:26 +0200 Subject: [PATCH] sync login now includes check for sync server initialization and initializes it if necessary Test sync button strictly not necessary --- src/routes/api/sync.js | 14 +++++--------- src/services/setup.js | 2 -- src/services/sync.js | 10 ++++++++++ 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/routes/api/sync.js b/src/routes/api/sync.js index 5a23a25b6..044b853de 100644 --- a/src/routes/api/sync.js +++ b/src/routes/api/sync.js @@ -1,7 +1,6 @@ "use strict"; const syncService = require('../../services/sync'); -const setupService = require('../../services/setup'); const syncUpdateService = require('../../services/sync_update'); const syncTableService = require('../../services/sync_table'); const sql = require('../../services/sql'); @@ -12,16 +11,13 @@ const log = require('../../services/log'); async function testSync() { try { - if (await setupService.isSyncServerInitialized()) { - await syncService.login(); + await syncService.login(); - return { success: true, message: "Sync server handshake has been successful" }; - } - else { - await setupService.setupSyncToSyncServer(); + // login was successful so we'll kick off sync now + // this is important in case when sync server has been just initialized + syncService.sync(); - return { success: true, message: "Sync has been established to the server instance. It will take some time to finish." }; - } + return { success: true, message: "Sync server handshake has been successful, sync has been started." }; } catch (e) { return { diff --git a/src/services/setup.js b/src/services/setup.js index b3f240627..4f8ed7ce3 100644 --- a/src/services/setup.js +++ b/src/services/setup.js @@ -33,8 +33,6 @@ async function setupSyncToSyncServer() { // the previous request would have failed. await optionService.setOption('lastSyncedPush', 0); await optionService.setOption('lastSyncedPull', 0); - - syncService.sync(); } async function requestToSyncServer(method, path, body = null) { diff --git a/src/services/sync.js b/src/services/sync.js index c8c53f3ce..5cf8055d1 100644 --- a/src/services/sync.js +++ b/src/services/sync.js @@ -69,6 +69,16 @@ async function sync() { } async function login() { + const setupService = require('./setup'); // circular dependency issue + + if (!await setupService.isSyncServerInitialized()) { + await setupService.setupSyncToSyncServer(); + } + + return await doLogin(); +} + +async function doLogin() { const timestamp = dateUtils.nowDate(); const documentSecret = await optionService.getOption('documentSecret');