delete-user.mjs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import UserGetter from '../../../app/src/Features/User/UserGetter.js'
  2. import UserDeleter from '../../../app/src/Features/User/UserDeleter.js'
  3. import { fileURLToPath } from 'url'
  4. const filename = fileURLToPath(import.meta.url)
  5. async function main() {
  6. const email = (process.argv.slice(2).pop() || '').replace(/^--email=/, '')
  7. if (!email) {
  8. console.error(`Usage: node ${filename} --email=joe@example.com`)
  9. process.exit(1)
  10. }
  11. await new Promise((resolve, reject) => {
  12. UserGetter.getUser({ email }, { _id: 1 }, function (error, user) {
  13. if (error) {
  14. return reject(error)
  15. }
  16. if (!user) {
  17. console.log(
  18. `user ${email} not in database, potentially already deleted`
  19. )
  20. return resolve()
  21. }
  22. const options = {
  23. ipAddress: '0.0.0.0',
  24. force: true,
  25. }
  26. UserDeleter.deleteUser(user._id, options, function (err) {
  27. if (err) {
  28. return reject(err)
  29. }
  30. resolve()
  31. })
  32. })
  33. })
  34. }
  35. main()
  36. .then(() => {
  37. console.error('Done.')
  38. process.exit(0)
  39. })
  40. .catch(err => {
  41. console.error(err)
  42. process.exit(1)
  43. })