trilium/src/routes/api/setup.js

69 lines
1.8 KiB
JavaScript
Raw Normal View History

2017-12-04 11:29:23 +08:00
"use strict";
const sqlInit = require('../../services/sql_init');
const setupService = require('../../services/setup');
2018-07-25 15:46:57 +08:00
const optionService = require('../../services/options');
const syncService = require('../../services/sync');
const log = require('../../services/log');
const rp = require('request-promise');
2017-12-04 11:29:23 +08:00
async function setupNewDocument(req) {
2017-12-04 11:29:23 +08:00
const { username, password } = req.body;
await sqlInit.createInitialDatabase(username, password);
}
2017-12-04 11:29:23 +08:00
async function setupSyncFromServer(req) {
2018-07-25 14:30:41 +08:00
const { syncServerHost, syncProxy, username, password } = req.body;
2018-07-25 14:30:41 +08:00
return await setupService.setupSyncFromSyncServer(syncServerHost, syncProxy, username, password);
}
2018-07-25 15:46:57 +08:00
async function setupSyncToSyncServer() {
log.info("Initiating sync to server");
const syncServerHost = await optionService.getOption('syncServerHost');
const syncProxy = await optionService.getOption('syncProxy');
const rpOpts = {
uri: syncServerHost + '/api/setup/sync-seed',
method: 'POST',
json: true,
body: {
options: await setupService.getSyncSeedOptions()
}
};
if (syncProxy) {
rpOpts.proxy = syncProxy;
}
await rp(rpOpts);
// this is completely new sync, need to reset counters. If this would not be new sync,
// the previous request would have failed.
await optionService.setOption('lastSyncedPush', 0);
await optionService.setOption('lastSyncedPull', 0);
syncService.sync();
}
async function saveSyncSeed(req) {
const options = req.body.options;
await sqlInit.createDatabaseForSync(options);
}
2018-07-25 15:46:57 +08:00
async function getSyncSeed() {
log.info("Serving sync seed.");
return await setupService.getSyncSeedOptions();
}
module.exports = {
setupNewDocument,
setupSyncFromServer,
2018-07-25 15:46:57 +08:00
setupSyncToSyncServer,
getSyncSeed,
saveSyncSeed
};