Merge pull request #5417 from overleaf/hb-restore-doc-from-admin

Restore soft deleted docs from admin

GitOrigin-RevId: 5c94539ae950c401225d2cfe7c0bc978ed258e22
This commit is contained in:
Brian Gough
2021-10-25 14:57:16 +01:00
committed by Copybot
parent 2037adf808
commit 3c780c65e8
4 changed files with 138 additions and 38 deletions

View File

@@ -0,0 +1,35 @@
const { callbackify } = require('util')
const Path = require('path')
const ProjectEntityHandler = require('./ProjectEntityHandler')
const ProjectEntityUpdateHandler = require('./ProjectEntityUpdateHandler')
async function restoreDeletedDoc(projectId, docId, docName, userId) {
const deletedDoc = await ProjectEntityHandler.promises.getDoc(
projectId,
docId,
{ include_deleted: true }
)
const formattedTimestamp = new Date()
.toISOString()
.replace('T', '-')
.replace(/[^0-9-]/g, '')
const extension = Path.extname(docName)
const basename = Path.basename(docName, extension)
const deletedDocName = `${basename}-${formattedTimestamp}${extension}`
return await ProjectEntityUpdateHandler.promises.addDocWithRanges(
projectId,
null,
`${deletedDocName}`,
deletedDoc.lines,
deletedDoc.ranges,
userId
)
}
module.exports = {
restoreDeletedDoc: callbackify(restoreDeletedDoc),
promises: {
restoreDeletedDoc,
},
}