diff --git a/app-sync.js b/app-sync.js index d3af3efe8b88091ed7a69c5375342f23134c1217..3975b45597663a629e17c0abd319073f8450fbae 100644 --- a/app-sync.js +++ b/app-sync.js @@ -9,15 +9,24 @@ let errorMiddleware = require('./util/error-middleware'); let config = require('./load-config'); let { getAccountDb } = require('./account-db'); -let simpleSync = require('./sync-simple'); -let fullSync = require('./sync-full'); - let actual = require('@actual-app/api'); let SyncPb = actual.internal.SyncProtoBuf; const app = express(); app.use(errorMiddleware); +function getSyncAlgorithm() { + switch (config.sync) { + case 'simple': return require('./sync-simple') + case 'full': return require('./sync-full') + default: + console.error("Unknown sync algorithm: " + config.sync) + process.abort() + } +} + +const syncAlgorithm = getSyncAlgorithm() + async function init() { let fileDir = join(process.env.ACTUAL_USER_FILES || config.userFiles); @@ -132,7 +141,7 @@ app.post('/sync', async (req, res) => { // let simpleSync = require('./sync-simple'); // let {trie, newMessages } = simpleSync.sync(messages, since, file_id); - let { trie, newMessages } = await fullSync.sync(messages, since, file_id); + let { trie, newMessages } = await getSyncAlgorithm.sync(messages, since, file_id); // encode it back... let responsePb = new SyncPb.SyncResponse(); diff --git a/load-config.js b/load-config.js index 933ce9994f3163be8c6fd8fd14cb962ebee81dae..2d71c79f3ac763707c378d3ca88e3ad6b0a34666 100644 --- a/load-config.js +++ b/load-config.js @@ -11,7 +11,8 @@ try { port: 5006, hostname: '0.0.0.0', serverFiles: join(root, 'server-files'), - userFiles: join(root, 'user-files') + userFiles: join(root, 'user-files'), + sync: 'full' }; }