UpdateTrimmer.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* eslint-disable
  2. camelcase,
  3. handle-callback-err,
  4. no-unused-vars,
  5. */
  6. // TODO: This file was created by bulk-decaffeinate.
  7. // Fix any style issues and re-enable lint.
  8. /*
  9. * decaffeinate suggestions:
  10. * DS102: Remove unnecessary code created because of implicit returns
  11. * DS103: Rewrite code to no longer use __guard__
  12. * DS207: Consider shorter variations of null checks
  13. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  14. */
  15. let UpdateTrimmer;
  16. const MongoManager = require("./MongoManager");
  17. const WebApiManager = require("./WebApiManager");
  18. const logger = require("logger-sharelatex");
  19. module.exports = (UpdateTrimmer = {
  20. shouldTrimUpdates(project_id, callback) {
  21. if (callback == null) { callback = function(error, shouldTrim) {}; }
  22. return MongoManager.getProjectMetaData(project_id, function(error, metadata) {
  23. if (error != null) { return callback(error); }
  24. if (metadata != null ? metadata.preserveHistory : undefined) {
  25. return callback(null, false);
  26. } else {
  27. return WebApiManager.getProjectDetails(project_id, function(error, details) {
  28. if (error != null) { return callback(error); }
  29. logger.log({project_id, details}, "got details");
  30. if (__guard__(details != null ? details.features : undefined, x => x.versioning)) {
  31. return MongoManager.setProjectMetaData(project_id, {preserveHistory: true}, function(error) {
  32. if (error != null) { return callback(error); }
  33. return MongoManager.upgradeHistory(project_id, function(error) {
  34. if (error != null) { return callback(error); }
  35. return callback(null, false);
  36. });
  37. });
  38. } else {
  39. return callback(null, true);
  40. }
  41. });
  42. }
  43. });
  44. }
  45. });
  46. function __guard__(value, transform) {
  47. return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined;
  48. }