overleaf/services/web/app/src/Features/Project/ProjectUpdateHandler.js

92 lines
2.5 KiB
JavaScript
Raw Normal View History

/* eslint-disable
camelcase,
n/handle-callback-err,
no-unused-vars,
*/
// TODO: This file was created by bulk-decaffeinate.
// Fix any style issues and re-enable lint.
/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* DS207: Consider shorter variations of null checks
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
const { Project } = require('../../models/Project')
const logger = require('@overleaf/logger')
const { promisifyAll } = require('../../util/promises')
const ProjectUpdateHandler = {
markAsUpdated(projectId, lastUpdatedAt, lastUpdatedBy, callback) {
if (callback == null) {
callback = function () {}
}
if (lastUpdatedAt == null) {
lastUpdatedAt = new Date()
}
const conditions = {
_id: projectId,
lastUpdated: { $lt: lastUpdatedAt },
}
const update = {
lastUpdated: lastUpdatedAt || new Date().getTime(),
lastUpdatedBy,
}
return Project.updateOne(conditions, update, {}, callback)
},
// like markAsUpdated but allows lastUpdatedAt to be reset to earlier time
resetUpdated(projectId, lastUpdatedAt, lastUpdatedBy, callback) {
if (callback == null) {
callback = function () {}
}
if (lastUpdatedAt == null) {
lastUpdatedAt = new Date()
}
const conditions = {
_id: projectId,
}
const update = {
lastUpdated: lastUpdatedAt || new Date().getTime(),
lastUpdatedBy,
}
return Project.updateOne(conditions, update, {}, callback)
},
markAsOpened(project_id, callback) {
const conditions = { _id: project_id }
const update = { lastOpened: Date.now() }
return Project.updateOne(conditions, update, {}, function (err) {
if (callback != null) {
return callback()
}
})
},
markAsInactive(project_id, callback) {
const conditions = { _id: project_id }
const update = { active: false }
return Project.updateOne(conditions, update, {}, function (err) {
if (callback != null) {
return callback()
}
})
},
markAsActive(project_id, callback) {
const conditions = { _id: project_id }
const update = { active: true }
return Project.updateOne(conditions, update, {}, function (err) {
if (callback != null) {
return callback()
}
})
},
}
ProjectUpdateHandler.promises = promisifyAll(ProjectUpdateHandler)
module.exports = ProjectUpdateHandler