UserInfoController.coffee 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. UserGetter = require "./UserGetter"
  2. logger = require("logger-sharelatex")
  3. UserDeleter = require("./UserDeleter")
  4. UserUpdater = require("./UserUpdater")
  5. sanitize = require('sanitizer')
  6. module.exports = UserController =
  7. getLoggedInUsersPersonalInfo: (req, res, next = (error) ->) ->
  8. logger.log user: req.user, "reciving request for getting logged in users personal info"
  9. return next(new Error("User is not logged in")) if !req.user?
  10. UserGetter.getUser req.user._id, {
  11. first_name: true, last_name: true,
  12. role:true, institution:true,
  13. email: true, signUpDate: true
  14. }, (error, user) ->
  15. return next(error) if error?
  16. UserController.sendFormattedPersonalInfo(user, res, next)
  17. getPersonalInfo: (req, res, next = (error) ->) ->
  18. UserGetter.getUser req.params.user_id, { _id: true, first_name: true, last_name: true, email: true}, (error, user) ->
  19. logger.log user_id: req.params.user_id, "reciving request for getting users personal info"
  20. return next(error) if error?
  21. return res.send(404) if !user?
  22. UserController.sendFormattedPersonalInfo(user, res, next)
  23. sendFormattedPersonalInfo: (user, res, next = (error) ->) ->
  24. UserController._formatPersonalInfo user, (error, info) ->
  25. return next(error) if error?
  26. res.send JSON.stringify(info)
  27. _formatPersonalInfo: (user, callback = (error, info) ->) ->
  28. callback null, {
  29. id: user._id.toString()
  30. first_name: user.first_name
  31. last_name: user.last_name
  32. email: user.email
  33. signUpDate: user.signUpDate
  34. role: user.role
  35. institution: user.institution
  36. }