overleaf/services/web/scripts/convert_doc_to_file.js
Eric Mc Sween 8b2f8ce243 Merge pull request #9383 from overleaf/em-file-tree-histories
Track source for all file tree operations

GitOrigin-RevId: ff95ea8e99bfa30203a2a42968519bbaba65e708
2022-08-26 08:03:30 +00:00

46 lines
1.2 KiB
JavaScript

const minimist = require('minimist')
const { waitForDb, ObjectId } = require('../app/src/infrastructure/mongodb')
const ProjectEntityUpdateHandler = require('../app/src/Features/Project/ProjectEntityUpdateHandler')
const Errors = require('../app/src/Features/Errors/Errors')
async function main() {
const argv = minimist(process.argv.slice(2))
const projectId = argv['project-id']
const docId = argv['doc-id']
const userId = argv['user-id']
if ([projectId, docId, userId].some(it => !it || !ObjectId.isValid(it))) {
throw new Error(
'provide a valid object id as --project-id, --doc-id and --user-id'
)
}
console.log(`Converting doc ${projectId}/${docId} as user ${userId}`)
await waitForDb()
try {
await ProjectEntityUpdateHandler.promises.convertDocToFile(
projectId,
docId,
userId,
null
)
} catch (err) {
if (err instanceof Errors.NotFoundError) {
throw new Error('Document not found')
} else if (err instanceof Errors.DocHasRangesError) {
throw new Error('Document has comments or tracked changes')
} else {
throw err
}
}
}
main()
.then(() => {
console.log('Done.')
process.exit(0)
})
.catch(err => {
console.error(err)
process.exit(1)
})