From 12014b9f4d280243b9028822de98a13e1e76af53 Mon Sep 17 00:00:00 2001 From: zadam Date: Sat, 29 Jul 2023 23:35:08 +0200 Subject: [PATCH] sync fixes and refactorings --- src/services/entity_changes.js | 8 ++++++-- src/services/sync.js | 20 +++++++++++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/services/entity_changes.js b/src/services/entity_changes.js index cb32563eb..58bfdb9c5 100644 --- a/src/services/entity_changes.js +++ b/src/services/entity_changes.js @@ -12,7 +12,7 @@ let maxEntityChangeId = 0; function putEntityChangeWithInstanceId(origEntityChange, instanceId) { const ec = {...origEntityChange, instanceId}; - return putEntityChange(ec); + putEntityChange(ec); } function putEntityChange(origEntityChange) { @@ -56,7 +56,11 @@ function putNoteReorderingEntityChange(parentNoteId, componentId) { } function putEntityChangeForOtherInstances(ec) { - putEntityChangeWithInstanceId(ec, null); + putEntityChange({ + ...ec, + changeId: null, + instanceId: null + }); } function addEntityChangesForSector(entityName, sector) { diff --git a/src/services/sync.js b/src/services/sync.js index cc1b75d5a..1cfc8e2e8 100644 --- a/src/services/sync.js +++ b/src/services/sync.js @@ -146,17 +146,19 @@ async function pullChanges(syncContext) { sql.transactional(() => { for (const {entityChange, entity} of entityChanges) { const changeAppliedAlready = entityChange.changeId - && !!sql.getValue("SELECT id FROM entity_changes WHERE changeId = ?", [entityChange.changeId]); + && !!sql.getValue("SELECT 1 FROM entity_changes WHERE changeId = ?", [entityChange.changeId]); - if (!changeAppliedAlready) { - if (!atLeastOnePullApplied) { // send only for first - ws.syncPullInProgress(); - - atLeastOnePullApplied = true; - } - - syncUpdateService.updateEntity(entityChange, entity, syncContext.instanceId); + if (changeAppliedAlready) { + continue; } + + if (!atLeastOnePullApplied) { // send only for first + ws.syncPullInProgress(); + + atLeastOnePullApplied = true; + } + + syncUpdateService.updateEntity(entityChange, entity, syncContext.instanceId); } if (lastSyncedPull !== lastEntityChangeId) {