revisions.js 860 B

12345678910111213141516171819202122232425262728293031
  1. const mongoose = require('mongoose');
  2. // eslint-disable-next-line no-unused-vars
  3. const ImportOptionForPages = require('~/models/admin/import-option-for-pages');
  4. const { ObjectId } = mongoose.Types;
  5. class RevisionOverwriteParamsFactory {
  6. /**
  7. * generate overwrite params object
  8. * @param {string} operatorUserId
  9. * @param {ImportOptionForPages} option
  10. * @return object
  11. * key: property name
  12. * value: any value or a function `(value, { document, schema, propertyName }) => { return newValue }`
  13. */
  14. static generate(operatorUserId, option) {
  15. const params = {};
  16. if (option.isOverwriteAuthorWithCurrentUser) {
  17. const userId = ObjectId(operatorUserId);
  18. params.author = userId;
  19. }
  20. return params;
  21. }
  22. }
  23. module.exports = (operatorUserId, option) => RevisionOverwriteParamsFactory.generate(operatorUserId, option);