more becca changes

This commit is contained in:
zadam 2021-04-26 22:24:55 +02:00
parent e466c393eb
commit 219098ab53
5 changed files with 20 additions and 7 deletions

View file

@ -5,6 +5,7 @@ const log = require('../../services/log');
const attributeService = require('../../services/attributes');
const repository = require('../../services/repository');
const Attribute = require('../../entities/attribute');
const becca = require("../../services/becca/becca.js");
function getEffectiveNoteAttributes(req) {
const note = repository.getNote(req.params.noteId);
@ -100,15 +101,14 @@ function deleteNoteAttribute(req) {
const noteId = req.params.noteId;
const attributeId = req.params.attributeId;
const attribute = repository.getAttribute(attributeId);
const attribute = becca.getAttribute(attributeId);
if (attribute) {
if (attribute.noteId !== noteId) {
return [400, `Attribute ${attributeId} is not owned by ${noteId}`];
}
attribute.isDeleted = true;
attribute.save();
attribute.markAttributeAsDeleted();
}
}

View file

@ -14,6 +14,7 @@ const cloningService = require('./cloning');
const appInfo = require('./app_info');
const searchService = require('./search/services/search');
const SearchContext = require("./search/search_context.js");
const becca = require("./becca/becca.js");
/**
* This is the main backend API interface for scripts. It's published in the local "api" object.
@ -58,21 +59,21 @@ function BackendScriptApi(currentNote, apiParams) {
* @param {string} noteId
* @returns {Note|null}
*/
this.getNote = repository.getNote;
this.getNote = becca.getNote;
/**
* @method
* @param {string} branchId
* @returns {Branch|null}
*/
this.getBranch = repository.getBranch;
this.getBranch = becca.getBranch;
/**
* @method
* @param {string} attributeId
* @returns {Attribute|null}
*/
this.getAttribute = repository.getAttribute;
this.getAttribute = becca.getAttribute;
/**
* Retrieves first entity from the SQL's result set.
@ -113,7 +114,7 @@ function BackendScriptApi(currentNote, apiParams) {
const noteIds = searchService.findResultsWithQuery(query, new SearchContext(searchParams))
.map(sr => sr.noteId);
return repository.getNotes(noteIds);
return becca.getNotes(noteIds);
};
/**

View file

@ -52,6 +52,10 @@ class Becca {
return this.notes[noteId];
}
getNotes(noteIds) {
return this.notes.filter(note => noteIds.includes(note.noteId));
}
getBranch(branchId) {
return this.branches[branchId];
}

View file

@ -164,6 +164,12 @@ class Attribute extends AbstractEntity {
utcDateModified: this.utcDateModified
});
}
markAttributeAsDeleted() {
sql.execute("UPDATE attributes SET isDeleted = 1 WHERE attributeId = ?", [this.attributeId]);
// FIXME: this needs to be published into entity_changes (for sync and becca cleanup)
}
}
module.exports = Attribute;

View file

@ -869,6 +869,8 @@ class Note extends AbstractEntity {
markAsDeleted() {
sql.execute("UPDATE notes SET isDeleted = 1 WHERE noteId = ?", [this.noteId]);
// FIXME: this needs to be published into entity_changes (for sync and becca cleanup)
}
}