WikiController.coffee 906 B

12345678910111213141516171819202122232425262728293031323334
  1. request = require("request")
  2. settings = require("settings-sharelatex")
  3. logger = require("logger-sharelatex")
  4. ErrorController = require "../Errors/ErrorController"
  5. module.exports = WikiController =
  6. getPage: (req, res, next) ->
  7. page = req.url.replace(/^\/learn/, "").replace(/^\//, "")
  8. if page == ""
  9. page = "Main_Page"
  10. wikiUrl = "#{settings.apis.wiki.url}/api.php"
  11. logger.log page: page, "proxying request to wiki"
  12. request {
  13. url: wikiUrl
  14. qs: {
  15. page: page
  16. action: "parse"
  17. format: "json"
  18. }
  19. }, (err, response, data)->
  20. if response?.statusCode == 404
  21. return ErrorController.notFound(req, res, next)
  22. try
  23. data = JSON.parse(data)
  24. catch err
  25. logger.err err:err, data:data, "error parsing data from wiki"
  26. logger.log data: data, "got response from wiki"
  27. res.render "wiki/page", {
  28. content: data.parse.text['*']
  29. title: data.parse.title
  30. }