| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- request = require("request")
- settings = require("settings-sharelatex")
- logger = require("logger-sharelatex")
- module.exports = TemplatesWebController =
- renderTemplatesIndexPage: (req, res)->
- logger.log "rendering index page of templates"
- TemplatesWebController._getDataFromTemplatesApi "/user/#{req.params.user_id}", (err, data)->
- if err?
- logger.err err:err, "something went wrong in renderTemplatesIndexPage"
- return res.send 500
- data.title = "LaTeX Templates"
- res.render "templates/index", data
- renerTemplateInTag: (req, res)->
- {user_id, tag_name, template_name} = req.params
- logger.log user_id:user_id, tag_name:tag_name, template_name:template_name, "rendering latex template page"
- TemplatesWebController._getDataFromTemplatesApi "/user/#{user_id}/tag/#{tag_name}/template/#{template_name}", (err, data)->
- if err?
- logger.err err:err, user_id:user_id, tag_name:tag_name, template_name:template_name, "something went wrong in renerTemplateInTag"
- return res.send 500
- data.title = data.template.name
- res.render "templates/template", data
- tagOrCanonicalPage: (req, res)->
- if req.params.template_id?
- TemplatesWebController._renderCanonicalPage(req, res)
- else if req.params.tag_name?.toLowerCase() == "all"
- TemplatesWebController._renderAllTemplatesPage(req, res)
- else if req.params.tag_name?
- TemplatesWebController._renderTagPage(req, res)
- else
- logger.log params:req.params, "problem rendering tagOrCanonicalPage"
- res.send 500
- proxyToTemplatesApi: (req, res)->
- url = req.url
- logger.log url:url, "proxying request to templates api"
- getReq = request.get("#{settings.apis.templates_api.url}#{url}")
- getReq.pipe(res)
- getReq.on "error", (error) ->
- logger.error err: error, "templates proxy API error"
- res.send 500
- _renderCanonicalPage: (req, res)->
- {user_id, template_id} = req.params
- logger.log user_id:user_id, template_id:template_id, "rendering template page"
- TemplatesWebController._getDataFromTemplatesApi "/user/#{user_id}/template/#{template_id}", (err, data)->
- if err?
- logger.err err:err, user_id:user_id, template_id:template_id, "something went wrong in _renderCanonicalPage"
- return res.send 500
- data.tag = null
- res.render "templates/template", data
- _renderAllTemplatesPage: (req, res)->
- {user_id} = req.params
- logger.log user_id:user_id, "rendering all templates page"
- TemplatesWebController._getDataFromTemplatesApi "/user/#{user_id}/all", (err, data)->
- if err?
- logger.err err:err, user_id:user_id, "something went wrong in _renderCanonicalPage"
- return res.send 500
- data.title = "All Templates"
- res.render "templates/tag", data
- _renderTagPage: (req, res)->
- {user_id, tag_name} = req.params
- logger.log user_id:user_id, tag_name:tag_name, "rendinging tag page for templates"
- TemplatesWebController._getDataFromTemplatesApi "/user/#{user_id}/tag/#{tag_name}", (err, data)->
- if err?
- logger.err err:err, user_id:user_id, tag_name:tag_name, "something went wrong in _renderCanonicalPage"
- return res.send 500
- data.title = data.tag.name
- res.render "templates/tag", data
- _getDataFromTemplatesApi: (path, callback)->
- opts =
- url: "#{settings.apis.templates_api.url}#{path}"
- json:true
- request.get opts, (err, response, data)->
- callback err, data
|