UserDeleter.coffee 932 B

123456789101112131415161718192021222324252627282930
  1. User = require("../../models/User").User
  2. NewsletterManager = require "../Newsletter/NewsletterManager"
  3. ProjectDeleter = require("../Project/ProjectDeleter")
  4. logger = require("logger-sharelatex")
  5. SubscriptionHandler = require("../Subscription/SubscriptionHandler")
  6. async = require("async")
  7. module.exports =
  8. deleteUser: (user_id, callback = ()->)->
  9. if !user_id?
  10. logger.err "user_id is null when trying to delete user"
  11. return callback("no user_id")
  12. User.findById user_id, (err, user)->
  13. if err?
  14. return callback(err)
  15. logger.log user:user, "deleting user"
  16. async.series [
  17. (cb)->
  18. NewsletterManager.unsubscribe user, cb
  19. (cb)->
  20. ProjectDeleter.deleteUsersProjects user._id, cb
  21. (cb)->
  22. SubscriptionHandler.cancelSubscription user, cb
  23. (cb)->
  24. user.remove cb
  25. ], (err)->
  26. if err?
  27. logger.err err:err, user_id:user_id, "something went wrong deleteing the user"
  28. callback err