nponiros/sync_server

View on GitHub
lib/sync/handle_client_changes.js

Summary

Maintainability
A
45 mins
Test Coverage
const applyClientChanges = require('./apply_client_changes');

function handleClientChanges(db, baseRevision, nextRevision, partial, clientID, changes) {
  if (partial) {
    return db.uncommittedChanges.update(clientID, changes);
  }
  return db.uncommittedChanges
      .get(clientID)
      .then((uncommittedChangesObj) => {
        return applyClientChanges(
            db,
            baseRevision,
            nextRevision,
            [...uncommittedChangesObj.changes, ...changes],
            clientID
        );
      });
}

module.exports = handleClientChanges;