clear_institution_notifications.mjs 1.4 KB

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