#98, new option "initialized" which indicates if setup has been finished

This commit is contained in:
azivner
2018-07-24 08:12:36 +02:00
parent 1fe7c62f5a
commit 013714cb5c
11 changed files with 130 additions and 57 deletions

View File

@@ -1,11 +1,7 @@
"use strict";
const sqlInit = require('../../services/sql_init');
const sql = require('../../services/sql');
const rp = require('request-promise');
const Option = require('../../entities/option');
const syncService = require('../../services/sync');
const log = require('../../services/log');
const setupService = require('../../services/setup');
async function setupNewDocument(req) {
const { username, password } = req.body;
@@ -16,44 +12,7 @@ async function setupNewDocument(req) {
async function setupSyncFromServer(req) {
const { serverAddress, username, password } = req.body;
try {
log.info("Getting document options from sync server.");
// response is expected to contain documentId and documentSecret options
const options = await rp.get({
uri: serverAddress + '/api/sync/document',
auth: {
'user': username,
'pass': password
},
json: true
});
log.info("Creating database for sync");
await sql.transactional(async () => {
await sqlInit.createDatabaseForSync(serverAddress);
for (const opt of options) {
await new Option(opt).save();
}
});
log.info("Triggering sync.");
// it's ok to not wait for it here
syncService.sync();
return { result: 'success' };
}
catch (e) {
log.error("Sync failed: " + e.message);
return {
result: 'failure',
error: e.message
};
}
return await setupService.setupSyncFromSyncServer(serverAddress, username, password);
}
module.exports = {