backfill_deleted_project_ids.js 1.6 KB

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