add_notification_ieee_collabratec_users.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const NotificationsBuilder = require('../app/src/Features/Notifications/NotificationsBuilder')
  2. const { waitForDb } = require('../app/src/infrastructure/mongodb')
  3. const { Subscription } = require('../app/src/models/Subscription')
  4. const minimist = require('minimist')
  5. let COMMIT = false
  6. async function main() {
  7. await waitForDb()
  8. const subscription = await Subscription.findOne({
  9. teamName: 'IEEECollabratec',
  10. })
  11. if (!subscription) {
  12. console.error(`No IEEECollabratec group subscription found so quitting`)
  13. return
  14. }
  15. const userIds = subscription.member_ids
  16. console.log(`Found ${userIds.length} users in IEEECollabratec group`)
  17. if (!COMMIT) {
  18. console.log('Dry run enabled, quitting here')
  19. return
  20. }
  21. if (userIds.length > 0) {
  22. console.log(`Notifying ${userIds.length} users`)
  23. for (const id of userIds) {
  24. await NotificationsBuilder.promises
  25. .ieeeCollabratecRetirement(id.toString())
  26. .create()
  27. }
  28. console.log(
  29. `Notification successfully added/updated for ${userIds.length} users`
  30. )
  31. } else {
  32. console.log('No users found')
  33. }
  34. }
  35. const setup = () => {
  36. const argv = minimist(process.argv.slice(2))
  37. COMMIT = argv.commit !== undefined
  38. if (!COMMIT) {
  39. console.warn('Doing dry run. Add --commit to commit changes')
  40. }
  41. }
  42. setup()
  43. main()
  44. .then(() => {
  45. process.exit(0)
  46. })
  47. .catch(err => {
  48. console.error(err)
  49. process.exit(1)
  50. })