clear_institution_notifications.mjs 1.3 KB

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