WebApiManager.coffee 876 B

12345678910111213141516171819202122232425
  1. request = require "request"
  2. settings = require "settings-sharelatex"
  3. logger = require "logger-sharelatex"
  4. module.exports = WebApiManager =
  5. joinProject: (project_id, user_id, callback = (error, project, privilegeLevel) ->) ->
  6. logger.log {project_id, user_id}, "sending join project request to web"
  7. url = "#{settings.apis.web.url}/project/#{project_id}/join"
  8. request.post {
  9. url: url
  10. qs: {user_id}
  11. auth:
  12. user: settings.apis.web.user
  13. pass: settings.apis.web.pass
  14. sendImmediately: true
  15. json: true
  16. jar: false
  17. }, (error, response, data) ->
  18. return callback(error) if error?
  19. if 200 <= response.statusCode < 300
  20. callback null, data?.project, data?.privilegeLevel
  21. else
  22. err = new Error("non-success status code from web: #{response.statusCode}")
  23. logger.error {err, project_id, user_id}, "error accessing web api"
  24. callback err