extract_read_and_write_token_prefix.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const mongojs = require('../../app/src/infrastructure/mongojs')
  2. const { db } = mongojs
  3. const Async = require('async')
  4. db.projects.find(
  5. {
  6. 'tokens.readAndWrite': { $exists: true },
  7. 'tokens.readAndWritePrefix': { $exists: false }
  8. },
  9. { tokens: 1 },
  10. (err, projects) => {
  11. if (err) {
  12. throw err
  13. }
  14. console.log(`>> Updating ${projects.length} projects`)
  15. Async.eachLimit(
  16. projects,
  17. 5,
  18. (project, cb) => {
  19. const rwToken = project.tokens.readAndWrite
  20. const prefixMatch = rwToken.match(/^(\d+).*$/)
  21. if (!prefixMatch) {
  22. const err = new Error(
  23. `no prefix on token: ${project._id}, ${rwToken}`
  24. )
  25. console.log(`>> Error, ${err.message}`)
  26. return cb(err)
  27. }
  28. db.projects.update(
  29. { _id: project._id },
  30. { $set: { 'tokens.readAndWritePrefix': prefixMatch[1] } },
  31. cb
  32. )
  33. },
  34. err => {
  35. if (err) {
  36. throw err
  37. }
  38. console.log('>> done')
  39. process.exit(0)
  40. }
  41. )
  42. }
  43. )