UserInfoController.coffee 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. UserGetter = require "./UserGetter"
  2. logger = require("logger-sharelatex")
  3. UserDeleter = require("./UserDeleter")
  4. module.exports = UserController =
  5. getLoggedInUsersPersonalInfo: (req, res, next = (error) ->) ->
  6. # this is funcky as hell, we don't use the current session to get the user
  7. # we use the auth token, actually destroying session from the chat api request
  8. req.session.destroy()
  9. logger.log user: req.user, "reciving request for getting logged in users personal info"
  10. return next(new Error("User is not logged in")) if !req.user?
  11. UserController.sendFormattedPersonalInfo(req.user, res, next)
  12. getPersonalInfo: (req, res, next = (error) ->) ->
  13. UserGetter.getUser req.params.user_id, { _id: true, first_name: true, last_name: true, email: true }, (error, user) ->
  14. logger.log user: req.params.user_id, "reciving request for getting users personal info"
  15. return next(error) if error?
  16. return res.send(404) if !user?
  17. UserController.sendFormattedPersonalInfo(user, res, next)
  18. req.session.destroy()
  19. sendFormattedPersonalInfo: (user, res, next = (error) ->) ->
  20. UserController._formatPersonalInfo user, (error, info) ->
  21. return next(error) if error?
  22. res.send JSON.stringify(info)
  23. deleteUser: (req, res)->
  24. user_id = req.session.user._id
  25. UserDeleter.deleteUser user_id, (err)->
  26. if !err?
  27. req.session.destroy()
  28. res.send(200)
  29. _formatPersonalInfo: (user, callback = (error, info) ->) ->
  30. callback null, {
  31. id: user._id.toString()
  32. first_name: user.first_name
  33. last_name: user.last_name
  34. email: user.email
  35. signUpDate: user.signUpDate
  36. }