sync fixes and refactorings

This commit is contained in:
zadam 2023-07-29 23:35:08 +02:00
parent e8b52f9e6c
commit 12014b9f4d
2 changed files with 17 additions and 11 deletions

View File

@ -12,7 +12,7 @@ let maxEntityChangeId = 0;
function putEntityChangeWithInstanceId(origEntityChange, instanceId) { function putEntityChangeWithInstanceId(origEntityChange, instanceId) {
const ec = {...origEntityChange, instanceId}; const ec = {...origEntityChange, instanceId};
return putEntityChange(ec); putEntityChange(ec);
} }
function putEntityChange(origEntityChange) { function putEntityChange(origEntityChange) {
@ -56,7 +56,11 @@ function putNoteReorderingEntityChange(parentNoteId, componentId) {
} }
function putEntityChangeForOtherInstances(ec) { function putEntityChangeForOtherInstances(ec) {
putEntityChangeWithInstanceId(ec, null); putEntityChange({
...ec,
changeId: null,
instanceId: null
});
} }
function addEntityChangesForSector(entityName, sector) { function addEntityChangesForSector(entityName, sector) {

View File

@ -146,17 +146,19 @@ async function pullChanges(syncContext) {
sql.transactional(() => { sql.transactional(() => {
for (const {entityChange, entity} of entityChanges) { for (const {entityChange, entity} of entityChanges) {
const changeAppliedAlready = entityChange.changeId 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 (changeAppliedAlready) {
if (!atLeastOnePullApplied) { // send only for first continue;
ws.syncPullInProgress();
atLeastOnePullApplied = true;
}
syncUpdateService.updateEntity(entityChange, entity, syncContext.instanceId);
} }
if (!atLeastOnePullApplied) { // send only for first
ws.syncPullInProgress();
atLeastOnePullApplied = true;
}
syncUpdateService.updateEntity(entityChange, entity, syncContext.instanceId);
} }
if (lastSyncedPull !== lastEntityChangeId) { if (lastSyncedPull !== lastEntityChangeId) {