mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-24 21:12:38 -04:00
680ebae30b
Move util/promises from web into a shared library GitOrigin-RevId: fe1980dc57b9dc8ce86fa1fad6a8a817e9505b3d
89 lines
2.3 KiB
JavaScript
89 lines
2.3 KiB
JavaScript
/* eslint-disable
|
|
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:
|
|
* 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('@overleaf/promise-utils')
|
|
|
|
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,
|
|
}
|
|
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,
|
|
}
|
|
Project.updateOne(conditions, update, {}, callback)
|
|
},
|
|
|
|
markAsOpened(projectId, callback) {
|
|
const conditions = { _id: projectId }
|
|
const update = { lastOpened: Date.now() }
|
|
Project.updateOne(conditions, update, {}, function (err) {
|
|
if (callback != null) {
|
|
return callback()
|
|
}
|
|
})
|
|
},
|
|
|
|
markAsInactive(projectId, callback) {
|
|
const conditions = { _id: projectId }
|
|
const update = { active: false }
|
|
Project.updateOne(conditions, update, {}, function (err) {
|
|
if (callback != null) {
|
|
return callback()
|
|
}
|
|
})
|
|
},
|
|
|
|
markAsActive(projectId, callback) {
|
|
const conditions = { _id: projectId }
|
|
const update = { active: true }
|
|
Project.updateOne(conditions, update, {}, function (err) {
|
|
if (callback != null) {
|
|
return callback()
|
|
}
|
|
})
|
|
},
|
|
}
|
|
|
|
ProjectUpdateHandler.promises = promisifyAll(ProjectUpdateHandler)
|
|
module.exports = ProjectUpdateHandler
|