How to use the @lykmapipo/mongoose-common.copyInstance function in @lykmapipo/mongoose-common

To help you get started, we’ve selected a few @lykmapipo/mongoose-common examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github lykmapipo / mongoose-rest-actions / lib / put.js View on Github external
const updatesFor = (id, updates) => {
  // normalize id
  const options = _.isPlainObject(id) ? id : { _id: id };

  // ignore self instance updates
  if (isInstance(updates) && updates._id === options._id) {
    return updates;
  }

  // compute updates
  const changes = mergeObjects(copyInstance(updates), options);
  return changes;
};
github lykmapipo / mongoose-rest-actions / lib / put.js View on Github external
function doPut(instance, next) {
          //update & persist instance
          if (body && !_.isEmpty(body)) {
            // copy existing paths & merge with updates
            const exists = _.pick(copyInstance(instance), ..._.keys(body));
            const changes = mergeObjects(exists, body);
            instance.set(changes);
          }
          instance.updatedAt = new Date();
          instance.save(function afterSave(error, saved) {
            next(error, saved);
          });
        },
github lykmapipo / mongoose-rest-actions / lib / patch.js View on Github external
const updatesFor = (id, updates) => {
  // normalize id
  const options = _.isPlainObject(id) ? id : { _id: id };

  // ignore self instance updates
  if (isInstance(updates) && updates._id === options._id) {
    return updates;
  }

  // compute updates
  const changes = mergeObjects(copyInstance(updates), options);
  return changes;
};
github lykmapipo / mongoose-rest-actions / lib / patch.js View on Github external
function doPatch(instance, next) {
          //update & persist instance
          if (body && !_.isEmpty(body)) {
            // copy existing paths & merge with updates
            const exists = _.pick(copyInstance(instance), ..._.keys(body));
            const changes = mergeObjects(exists, body);
            instance.set(changes);
          }
          instance.updatedAt = new Date();
          instance.save(function afterSave(error, saved) {
            next(error, saved);
          });
        },
github lykmapipo / mongoose-gridfs / lib / schema.js View on Github external
FileSchema.methods.write = function write(stream, done) {
    // obtain file writable details
    const file = _.pick(copyInstance(this), WRITABLES);

    // stream file to gridfs
    bucket.writeFile(file, stream, function afterWriteFile(error, created) {
      // back-off error
      if (error) {
        done(error);
      }
      //read file details
      else {
        this.constructor.findById(created._id, done);
      }
    }.bind(this));
  };
github lykmapipo / mongoose-rest-actions / lib / post.js View on Github external
schema.statics.post = function post(body, done) {

    //instantiate model
    const instance = (
      isInstance(body) ?
      body :
      new this(copyInstance(body))
    );

    //persist model
    instance.post(done);

  };