WebApiManager.coffee 973 B

1234567891011121314151617181920212223242526272829303132
  1. request = require "request"
  2. logger = require "logger-sharelatex"
  3. Settings = require "settings-sharelatex"
  4. module.exports = WebApiManager =
  5. getUserInfo: (user_id, callback = (error, userInfo) ->) ->
  6. url = "#{Settings.apis.web.url}/user/#{user_id}/personal_info"
  7. logger.log user_id: user_id, "getting user info from web"
  8. request.get {
  9. url: url
  10. auth:
  11. user: Settings.apis.web.user
  12. pass: Settings.apis.web.pass
  13. sendImmediately: true
  14. }, (error, res, body)->
  15. if error?
  16. return callback(error)
  17. if res.statusCode >= 200 and res.statusCode < 300
  18. try
  19. user = JSON.parse(body)
  20. catch error
  21. return callback(error)
  22. callback null, {
  23. id: user.id
  24. email: user.email
  25. first_name: user.first_name
  26. last_name: user.last_name
  27. }
  28. else
  29. error = new Error("web returned a non-success status code: #{res.statusCode}")
  30. logger.error err: error, user_id: user_id, url: url, "error accessing web"
  31. callback error