delete-user.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const { waitForDb } = require('../../../app/src/infrastructure/mongodb')
  2. const UserGetter = require('../../../app/src/Features/User/UserGetter')
  3. const UserDeleter = require('../../../app/src/Features/User/UserDeleter')
  4. async function main() {
  5. await waitForDb()
  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. }
  25. UserDeleter.deleteUser(user._id, options, function (err) {
  26. if (err) {
  27. return reject(err)
  28. }
  29. resolve()
  30. })
  31. })
  32. })
  33. }
  34. main()
  35. .then(() => {
  36. console.error('Done.')
  37. process.exit(0)
  38. })
  39. .catch(err => {
  40. console.error(err)
  41. process.exit(1)
  42. })