TemplatesController.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /* eslint-disable
  2. camelcase,
  3. max-len,
  4. no-unused-vars,
  5. */
  6. // TODO: This file was created by bulk-decaffeinate.
  7. // Fix any style issues and re-enable lint.
  8. /*
  9. * decaffeinate suggestions:
  10. * DS102: Remove unnecessary code created because of implicit returns
  11. * DS207: Consider shorter variations of null checks
  12. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  13. */
  14. let TemplatesController
  15. const path = require('path')
  16. const AuthenticationController = require('../Authentication/AuthenticationController')
  17. const TemplatesManager = require('./TemplatesManager')
  18. const ProjectHelper = require('../Project/ProjectHelper')
  19. const logger = require('logger-sharelatex')
  20. module.exports = TemplatesController = {
  21. getV1Template(req, res) {
  22. const templateVersionId = req.params.Template_version_id
  23. const templateId = req.query.id
  24. if (!/^[0-9]+$/.test(templateVersionId) || !/^[0-9]+$/.test(templateId)) {
  25. logger.err(
  26. { templateVersionId, templateId },
  27. 'invalid template id or version'
  28. )
  29. return res.sendStatus(400)
  30. }
  31. const data = {}
  32. data.templateVersionId = templateVersionId
  33. data.templateId = templateId
  34. data.name = req.query.templateName
  35. data.compiler = ProjectHelper.compilerFromV1Engine(req.query.latexEngine)
  36. data.imageName = req.query.texImage
  37. data.mainFile = req.query.mainFile
  38. data.brandVariationId = req.query.brandVariationId
  39. return res.render(
  40. path.resolve(
  41. __dirname,
  42. '../../../views/project/editor/new_from_template'
  43. ),
  44. data
  45. )
  46. },
  47. createProjectFromV1Template(req, res, next) {
  48. const user_id = AuthenticationController.getLoggedInUserId(req)
  49. return TemplatesManager.createProjectFromV1Template(
  50. req.body.brandVariationId,
  51. req.body.compiler,
  52. req.body.mainFile,
  53. req.body.templateId,
  54. req.body.templateName,
  55. req.body.templateVersionId,
  56. user_id,
  57. req.body.imageName,
  58. function (err, project) {
  59. if (err != null) {
  60. return next(err)
  61. }
  62. delete req.session.templateData
  63. return res.redirect(`/project/${project._id}`)
  64. }
  65. )
  66. }
  67. }