DocumentUpdaterManager.coffee 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. request = require "request"
  2. logger = require "logger-sharelatex"
  3. Settings = require "settings-sharelatex"
  4. module.exports = DocumentUpdaterManager =
  5. getDocument: (project_id, doc_id, callback = (error, content, version) ->) ->
  6. url = "#{Settings.apis.documentupdater.url}/project/#{project_id}/doc/#{doc_id}"
  7. logger.log project_id:project_id, doc_id: doc_id, "getting doc from document updater"
  8. request.get url, (error, res, body)->
  9. if error?
  10. return callback(error)
  11. if res.statusCode >= 200 and res.statusCode < 300
  12. try
  13. body = JSON.parse(body)
  14. catch error
  15. return callback(error)
  16. callback null, body.lines.join("\n"), body.version
  17. else
  18. error = new Error("doc updater returned a non-success status code: #{res.statusCode}")
  19. logger.error err: error, project_id:project_id, doc_id:doc_id, url: url, "error accessing doc updater"
  20. callback error
  21. setDocument: (project_id, doc_id, content, user_id, callback = (error) ->) ->
  22. url = "#{Settings.apis.documentupdater.url}/project/#{project_id}/doc/#{doc_id}"
  23. logger.log project_id:project_id, doc_id: doc_id, "setting doc in document updater"
  24. request.post {
  25. url: url
  26. json:
  27. lines: content.split("\n")
  28. source: "restore"
  29. user_id: user_id
  30. }, (error, res, body)->
  31. if error?
  32. return callback(error)
  33. if res.statusCode >= 200 and res.statusCode < 300
  34. callback null
  35. else
  36. error = new Error("doc updater returned a non-success status code: #{res.statusCode}")
  37. logger.error err: error, project_id:project_id, doc_id:doc_id, url: url, "error accessing doc updater"
  38. callback error