code: function handlePostRequest(request) {
    const className = request.className;
    const collection = getCollection(className);
  
    let newObject;
    return runHook(className, 'beforeSave', request.data).then(result => {
      const changedKeys = getChangedKeys(request.data, result);
  
      const newId = crypto.newObjectId();
      const now = new Date();
  
      const ops = extractOps(result);
  
      newObject = Object.assign(
        result,
        { objectId: newId, createdAt: now, updatedAt: now }
      );
  
      applyOps(newObject, ops, className);
      const toOmit = ['updatedAt'].concat(Array.from(getMask(className)));
      const toPick = Object.keys(ops).concat(changedKeys);
  
      collection[newId] = newObject;
  
      const response = Object.assign(
        _.cloneDeep(_.omit(_.pick(result, toPick), toOmit)),
        { objectId: newId, createdAt: result.createdAt.toJSON() }
      );
  
      return Parse.Promise.as(respond(201, response));
    }).then((result) => {
      runHook(className, 'afterSave', newObject);
      return result;
    });
  }
docs: Handles a POST request (Parse.Object.save())