Merge pull request #2639 from overleaf/em-convert-doc-to-file

Endpoint for converting a doc to a file

GitOrigin-RevId: 0a3bd46a7a78537b0f64dc577402277cbe81fecb
This commit is contained in:
Eric Mc Sween
2020-03-04 04:37:43 -05:00
committed by Copybot
parent 693100358c
commit 2627595040
9 changed files with 1011 additions and 615 deletions

View File

@@ -1,3 +1,4 @@
const HttpErrors = require('@overleaf/o-error/http')
const ProjectDeleter = require('../Project/ProjectDeleter')
const EditorController = require('./EditorController')
const ProjectGetter = require('../Project/ProjectGetter')
@@ -11,6 +12,7 @@ const PrivilegeLevels = require('../Authorization/PrivilegeLevels')
const TokenAccessHandler = require('../TokenAccess/TokenAccessHandler')
const AuthenticationController = require('../Authentication/AuthenticationController')
const Errors = require('../Errors/Errors')
const ProjectEntityUpdateHandler = require('../Project/ProjectEntityUpdateHandler')
const { expressify } = require('../../util/promises')
module.exports = {
@@ -23,6 +25,7 @@ module.exports = {
deleteFile: expressify(deleteFile),
deleteFolder: expressify(deleteFolder),
deleteEntity: expressify(deleteEntity),
convertDocToFile: expressify(convertDocToFile),
_nameIsAcceptableLength
}
@@ -221,3 +224,25 @@ async function deleteEntity(req, res, next) {
)
res.sendStatus(204)
}
async function convertDocToFile(req, res, next) {
const projectId = req.params.Project_id
const docId = req.params.entity_id
const { userId } = req.body
try {
const fileRef = await ProjectEntityUpdateHandler.promises.convertDocToFile(
projectId,
docId,
userId
)
res.json({ fileId: fileRef._id.toString() })
} catch (err) {
if (err instanceof Errors.NotFoundError) {
throw new HttpErrors.NotFoundError({
info: { public: { message: 'Document not found' } }
})
} else {
throw err
}
}
}