UpdateTrimmer.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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) {
  22. callback = function(error, shouldTrim) {}
  23. }
  24. return MongoManager.getProjectMetaData(project_id, function(
  25. error,
  26. metadata
  27. ) {
  28. if (error != null) {
  29. return callback(error)
  30. }
  31. if (metadata != null ? metadata.preserveHistory : undefined) {
  32. return callback(null, false)
  33. } else {
  34. return WebApiManager.getProjectDetails(project_id, function(
  35. error,
  36. details
  37. ) {
  38. if (error != null) {
  39. return callback(error)
  40. }
  41. logger.log({ project_id, details }, 'got details')
  42. if (
  43. __guard__(
  44. details != null ? details.features : undefined,
  45. x => x.versioning
  46. )
  47. ) {
  48. return MongoManager.setProjectMetaData(
  49. project_id,
  50. { preserveHistory: true },
  51. function(error) {
  52. if (error != null) {
  53. return callback(error)
  54. }
  55. return MongoManager.upgradeHistory(project_id, function(error) {
  56. if (error != null) {
  57. return callback(error)
  58. }
  59. return callback(null, false)
  60. })
  61. }
  62. )
  63. } else {
  64. return callback(null, true)
  65. }
  66. })
  67. }
  68. })
  69. }
  70. }
  71. function __guard__(value, transform) {
  72. return typeof value !== 'undefined' && value !== null
  73. ? transform(value)
  74. : undefined
  75. }