mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-28 03:21:56 +02:00
Promisify ProjectUpdateHandler and ProjectUpdateHandlerTests GitOrigin-RevId: 312cbe71d431cf50932ab7d5501529d87f7827f2
48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
const { Project } = require('../../models/Project')
|
|
const { callbackify } = require('util')
|
|
|
|
const ProjectUpdateHandler = {
|
|
async markAsUpdated(projectId, lastUpdatedAt, lastUpdatedBy) {
|
|
if (!lastUpdatedAt) {
|
|
lastUpdatedAt = new Date()
|
|
}
|
|
|
|
const conditions = {
|
|
_id: projectId,
|
|
lastUpdated: { $lt: lastUpdatedAt },
|
|
}
|
|
|
|
const update = {
|
|
lastUpdated: lastUpdatedAt || new Date().getTime(),
|
|
lastUpdatedBy,
|
|
}
|
|
await Project.updateOne(conditions, update, {}).exec()
|
|
},
|
|
|
|
async markAsOpened(projectId) {
|
|
const conditions = { _id: projectId }
|
|
const update = { lastOpened: Date.now() }
|
|
await Project.updateOne(conditions, update, {}).exec()
|
|
},
|
|
|
|
async markAsInactive(projectId) {
|
|
const conditions = { _id: projectId }
|
|
const update = { active: false }
|
|
await Project.updateOne(conditions, update, {}).exec()
|
|
},
|
|
|
|
async markAsActive(projectId) {
|
|
const conditions = { _id: projectId }
|
|
const update = { active: true }
|
|
await Project.updateOne(conditions, update, {}).exec()
|
|
},
|
|
}
|
|
|
|
module.exports = {
|
|
markAsUpdated: callbackify(ProjectUpdateHandler.markAsUpdated),
|
|
markAsOpened: callbackify(ProjectUpdateHandler.markAsOpened),
|
|
markAsInactive: callbackify(ProjectUpdateHandler.markAsInactive),
|
|
markAsActive: callbackify(ProjectUpdateHandler.markAsActive),
|
|
promises: ProjectUpdateHandler,
|
|
}
|