convert_doc_to_file.mjs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import minimist from 'minimist'
  2. import { ObjectId } from '../app/src/infrastructure/mongodb.js'
  3. import ProjectEntityUpdateHandler from '../app/src/Features/Project/ProjectEntityUpdateHandler.js'
  4. import Errors from '../app/src/Features/Errors/Errors.js'
  5. async function main() {
  6. const argv = minimist(process.argv.slice(2))
  7. const projectId = argv['project-id']
  8. const docId = argv['doc-id']
  9. const userId = argv['user-id']
  10. if ([projectId, docId, userId].some(it => !it || !ObjectId.isValid(it))) {
  11. throw new Error(
  12. 'provide a valid object id as --project-id, --doc-id and --user-id'
  13. )
  14. }
  15. console.log(`Converting doc ${projectId}/${docId} as user ${userId}`)
  16. try {
  17. await ProjectEntityUpdateHandler.promises.convertDocToFile(
  18. projectId,
  19. docId,
  20. userId,
  21. null
  22. )
  23. } catch (err) {
  24. if (err instanceof Errors.NotFoundError) {
  25. throw new Error('Document not found')
  26. } else if (err instanceof Errors.DocHasRangesError) {
  27. throw new Error('Document has comments or tracked changes')
  28. } else {
  29. throw err
  30. }
  31. }
  32. }
  33. try {
  34. await main()
  35. console.log('Done.')
  36. process.exit(0)
  37. } catch (error) {
  38. console.error(error)
  39. process.exit(1)
  40. }