fixed syncing of erased notes, closes #2316

This commit is contained in:
zadam
2021-11-12 21:19:23 +01:00
parent 600c16551a
commit df0411197b
5 changed files with 38 additions and 8 deletions

View File

@@ -9,7 +9,7 @@ function updateEntity(entityChange, entityRow) {
if (!entityRow) {
if (entityChange.isSynced) {
if (entityChange.isErased) {
entityChangesService.addEntityChange(entityChange, true);
eraseEntity(entityChange);
}
else {
log.info(`Encountered synced non-erased entity change without entity: ${JSON.stringify(entityChange)}`);
@@ -105,6 +105,23 @@ function handleContent(content) {
return content;
}
function eraseEntity(entityChange) {
const {entityName, entityId} = entityChange;
if (!["notes", "note_contents", "branches", "attributes", "note_revisions", "note_revision_contents"].includes(entityName)) {
log.error(`Cannot erase entity ${entityName}, id ${entityId}`);
return;
}
const keyName = entityConstructor.getEntityFromEntityName(entityName).primaryKeyName;
sql.execute(`DELETE FROM ${entityName} WHERE ${keyName} = ?`, [entityId]);
eventService.emit(eventService.ENTITY_DELETE_SYNCED, { entityName, entityId });
entityChangesService.addEntityChange(entityChange, true);
}
module.exports = {
updateEntity
};