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

Do not convert a doc to file when it has ranges

GitOrigin-RevId: 52f0151e54c426178f80c34c6afac908bbf7b90d
This commit is contained in:
Eric Mc Sween
2020-03-10 08:36:53 -04:00
committed by Copybot
parent 403704710c
commit 8547bb3c8d
5 changed files with 180 additions and 110 deletions

View File

@@ -1521,7 +1521,7 @@ const ProjectEntityUpdateHandler = {
convertDocToFile: wrapWithLock({
beforeLock(next) {
return function(projectId, docId, userId, callback) {
DocumentUpdaterHandler.deleteDoc(projectId, docId, err => {
DocumentUpdaterHandler.flushDocToMongo(projectId, docId, err => {
if (err) {
return callback(err)
}
@@ -1532,47 +1532,59 @@ const ProjectEntityUpdateHandler = {
if (err) {
return callback(err)
}
DocstoreManager.getDoc(projectId, docId, (err, docLines) => {
if (err) {
return callback(err)
}
FileWriter.writeLinesToDisk(
projectId,
docLines,
(err, fsPath) => {
DocstoreManager.getDoc(
projectId,
docId,
(err, docLines, rev, version, ranges) => {
if (err) {
return callback(err)
}
if (!_.isEmpty(ranges)) {
return callback(new Errors.DocHasRangesError({}))
}
DocumentUpdaterHandler.deleteDoc(projectId, docId, err => {
if (err) {
return callback(err)
}
FileStoreHandler.uploadFileFromDisk(
FileWriter.writeLinesToDisk(
projectId,
{ name: doc.name },
fsPath,
(err, fileStoreUrl, fileRef) => {
docLines,
(err, fsPath) => {
if (err) {
return callback(err)
}
fs.unlink(fsPath, err => {
if (err) {
logger.warn(
{ err, path: fsPath },
'failed to clean up temporary file'
)
FileStoreHandler.uploadFileFromDisk(
projectId,
{ name: doc.name },
fsPath,
(err, fileStoreUrl, fileRef) => {
if (err) {
return callback(err)
}
fs.unlink(fsPath, err => {
if (err) {
logger.warn(
{ err, path: fsPath },
'failed to clean up temporary file'
)
}
next(
projectId,
doc,
docPath,
fileRef,
fileStoreUrl,
userId,
callback
)
})
}
next(
projectId,
doc,
docPath,
fileRef,
fileStoreUrl,
userId,
callback
)
})
)
}
)
}
)
})
})
}
)
}
)
})