becca conversion WIP

This commit is contained in:
zadam 2021-05-01 21:52:22 +02:00
parent 6626f100ad
commit d13c8771ca
8 changed files with 32 additions and 27 deletions

View File

@ -5,7 +5,6 @@ const Branch = require('../entities/branch');
const Attribute = require('../entities/attribute');
const RecentNote = require('../entities/recent_note');
const ApiToken = require('../entities/api_token');
const Option = require('../entities/option');
const cls = require('../services/cls');
const ENTITY_NAME_TO_ENTITY = {
@ -16,7 +15,6 @@ const ENTITY_NAME_TO_ENTITY = {
"note_revisions": NoteRevision,
"note_revision_contents": NoteRevision,
"recent_notes": RecentNote,
"options": Option,
"api_tokens": ApiToken,
};
@ -57,9 +55,6 @@ function createEntityFromRow(row) {
cls.setEntityToCache('notes', row.noteId, entity);
}
else if (row.name) {
entity = new Option(row);
}
else {
throw new Error('Unknown entity type for row: ' + JSON.stringify(row));
}

View File

@ -75,6 +75,10 @@ class Becca {
return row ? new NoteRevision(row) : null;
}
getOption(name) {
return this.options[name];
}
}
const becca = new Becca();

View File

@ -10,8 +10,14 @@ const Branch = require('./entities/branch');
const Attribute = require('./entities/attribute');
const Option = require('./entities/option');
sqlInit.dbReady.then(() => {
load();
const beccaLoaded = new Promise((res, rej) => {
sqlInit.dbReady.then(() => {
load();
require('../options_init').initStartupOptions();
res();
});
});
function load() {
@ -182,5 +188,6 @@ eventService.subscribe(eventService.ENTER_PROTECTED_SESSION, () => {
eventService.subscribe(eventService.LEAVE_PROTECTED_SESSION, load);
module.exports = {
load
load,
beccaLoaded
};

View File

@ -26,6 +26,8 @@ class Option extends AbstractEntity {
super.beforeSaving();
this.utcDateModified = dateUtils.utcNowDateTime();
// utcDateCreated is scheduled for removal so the value does not matter
this.utcDateCreated = dateUtils.utcNowDateTime();
}
}

View File

@ -3,13 +3,6 @@
const sql = require('./sql');
const utils = require('./utils');
const log = require('./log');
const ApiToken = require('../entities/api_token');
const Branch = require('../entities/branch');
const Note = require('../entities/note');
const Attribute = require('../entities/attribute');
const NoteRevision = require('./becca/entities/note_revision.js');
const RecentNote = require('../entities/recent_note');
const Option = require('../entities/option');
function getSectorHashes(tableName, primaryKeyName, whereBranch) {
const hashes = sql.getRows(`SELECT ${primaryKeyName} AS id, hash FROM ${tableName}`

View File

@ -1,8 +1,10 @@
const becca = require('./becca/becca');
function getOption(name) {
const option = require('./becca').getOption(name);
const option = require('./becca/becca').getOption(name);
if (!option) {
throw new Error(`Option ${name} doesn't exist`);
throw new Error(`Option "${name}" doesn't exist`);
}
return option.value;
@ -37,7 +39,7 @@ function getOptionBool(name) {
}
function setOption(name, value) {
const option = require('./becca').getOption(name);
const option = becca.getOption(name);
if (value === true || value === false) {
value = value.toString();
@ -65,11 +67,17 @@ function createOption(name, value, isSynced) {
}
function getOptions() {
return require('./repository').getEntities("SELECT * FROM options ORDER BY name");
return Object.values(becca.options);
}
function getOptionsMap() {
return require('./sql').getMap("SELECT name, value FROM options ORDER BY name");
const map = {};
for (const option of Object.values(becca.options)) {
map[option.name] = option.value;
}
return map;
}
module.exports = {

View File

@ -5,7 +5,7 @@ const sql = require('./sql');
const utils = require('./utils');
const optionService = require('./options');
const port = require('./port');
const Option = require('../entities/option');
const Option = require('./becca/entities/option');
const TaskContext = require('./task_context.js');
const migrationService = require('./migration');
const cls = require('./cls');
@ -39,8 +39,6 @@ async function initDbConnection() {
await migrationService.migrateIfNecessary();
require('./options_init').initStartupOptions();
sql.execute('CREATE TEMP TABLE "param_list" (`paramId` TEXT NOT NULL PRIMARY KEY)');
dbReady.resolve();

View File

@ -383,17 +383,15 @@ function getOutstandingPullCount() {
return outstandingPullCount;
}
sqlInit.dbReady.then(() => {
require("./becca/becca_loader").beccaLoaded.then(() => {
setInterval(cls.wrap(sync), 60000);
// kickoff initial sync immediately
setTimeout(cls.wrap(sync), 5000);
});
if (sqlInit.isDbInitialized()) {
// called just so ws.setLastSyncedPush() is called
getLastSyncedPush();
}
});
module.exports = {
sync,