UserInfoController.coffee 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. _formatPersonalInfo: (user, callback = (error, info) ->) ->
  24. callback null, {
  25. id: user._id.toString()
  26. first_name: user.first_name
  27. last_name: user.last_name
  28. email: user.email
  29. signUpDate: user.signUpDate
  30. }