mirror of
https://github.com/zadam/trilium.git
synced 2024-09-29 20:15:59 +08:00
76 lines
1.9 KiB
JavaScript
76 lines
1.9 KiB
JavaScript
"use strict";
|
|
|
|
const sqlInit = require('../../services/sql_init');
|
|
const setupService = require('../../services/setup');
|
|
const optionService = require('../../services/options');
|
|
const syncService = require('../../services/sync');
|
|
const log = require('../../services/log');
|
|
const rp = require('request-promise');
|
|
|
|
async function setupNewDocument(req) {
|
|
const { username, password } = req.body;
|
|
|
|
await sqlInit.createInitialDatabase(username, password);
|
|
}
|
|
|
|
async function setupSyncFromServer(req) {
|
|
const { syncServerHost, syncProxy, username, password } = req.body;
|
|
|
|
return await setupService.setupSyncFromSyncServer(syncServerHost, syncProxy, username, password);
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
try {
|
|
await rp(rpOpts);
|
|
}
|
|
catch (e) {
|
|
return { success: false, error: e.message };
|
|
}
|
|
|
|
// 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();
|
|
|
|
return { success: true };
|
|
}
|
|
|
|
async function saveSyncSeed(req) {
|
|
const options = req.body.options;
|
|
|
|
await sqlInit.createDatabaseForSync(options);
|
|
}
|
|
|
|
async function getSyncSeed() {
|
|
log.info("Serving sync seed.");
|
|
|
|
return await setupService.getSyncSeedOptions();
|
|
}
|
|
|
|
module.exports = {
|
|
setupNewDocument,
|
|
setupSyncFromServer,
|
|
setupSyncToSyncServer,
|
|
getSyncSeed,
|
|
saveSyncSeed
|
|
}; |