clear_institution_notifications.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const { promisify } = require('util')
  2. const InstitutionsManager = require('../app/src/Features/Institutions/InstitutionsManager')
  3. const sleep = promisify(setTimeout)
  4. async function main() {
  5. const institutionId = parseInt(process.argv[2])
  6. if (isNaN(institutionId)) throw new Error('No institution id')
  7. const dryRun = process.argv.includes('--dry-run')
  8. console.log('Deleting notifications of institution', institutionId)
  9. const preview =
  10. await InstitutionsManager.promises.clearInstitutionNotifications(
  11. institutionId,
  12. true
  13. )
  14. console.log('--- Preview ---')
  15. console.log(JSON.stringify(preview, null, 4))
  16. console.log('---------------')
  17. if (dryRun) {
  18. console.log('Exiting early due to --dry-run flag')
  19. return
  20. }
  21. console.log('Exit in the next 10s in case these numbers are off.')
  22. await sleep(10 * 1000)
  23. const cleared =
  24. await InstitutionsManager.promises.clearInstitutionNotifications(
  25. institutionId,
  26. false
  27. )
  28. console.log('--- Cleared ---')
  29. console.log(JSON.stringify(cleared, null, 4))
  30. console.log('---------------')
  31. }
  32. if (require.main === module) {
  33. main()
  34. .then(() => {
  35. console.log('Done.')
  36. process.exit(0)
  37. })
  38. .catch(err => {
  39. console.error(err)
  40. process.exit(1)
  41. })
  42. }