backfill_deleted_project_ids.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. const { DeletedProject } = require('../app/src/models/DeletedProject')
  2. const Async = require('async')
  3. DeletedProject.find({}, (error, deletedProjects) => {
  4. if (error) {
  5. throw error
  6. }
  7. Async.eachLimit(
  8. deletedProjects,
  9. 10,
  10. (deletedProject, cb) => {
  11. if (deletedProject.project) {
  12. const src = deletedProject.project
  13. DeletedProject.findOneAndUpdate(
  14. { _id: deletedProject._id },
  15. {
  16. $set: {
  17. 'deleterData.deletedProjectId': src._id,
  18. 'deleterData.deletedProjectOwnerId': src.owner_ref,
  19. 'deleterData.deletedProjectCollaboratorIds':
  20. src.collaberator_refs,
  21. 'deleterData.deletedProjectReadOnlyIds': src.readOnly_refs,
  22. 'deleterData.deletedProjectReadWriteToken': src.tokens
  23. ? src.tokens.readAndWrite
  24. : undefined,
  25. 'deleterData.deletedProjectOverleafId': src.overleaf
  26. ? src.overleaf.id
  27. : undefined,
  28. 'deleterData.deletedProjectOverleafHistoryId':
  29. src.overleaf && src.overleaf.history
  30. ? src.overleaf.history.id
  31. : undefined,
  32. 'deleterData.deletedProjectReadOnlyToken': src.tokens
  33. ? src.tokens.readOnly
  34. : undefined,
  35. 'deleterData.deletedProjectReadWriteTokenAccessIds':
  36. src.tokenAccessReadOnly_refs,
  37. 'deleterData.deletedProjectReadOnlyTokenAccessIds':
  38. src.tokenAccessReadAndWrite_refs,
  39. 'deleterData.deletedProjectLastUpdatedAt': src.lastUpdated
  40. }
  41. },
  42. cb
  43. )
  44. } else {
  45. cb()
  46. }
  47. },
  48. err => {
  49. if (err) {
  50. throw err
  51. }
  52. process.exit(0)
  53. }
  54. )
  55. })