extract_read_and_write_token_prefix.js 1.0 KB

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