ProjectController.coffee 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. logger = require("logger-sharelatex")
  2. projectDeleter = require("./ProjectDeleter")
  3. projectDuplicator = require("./ProjectDuplicator")
  4. projectCreationHandler = require("./ProjectCreationHandler")
  5. metrics = require('../../infrastructure/Metrics')
  6. sanitize = require('sanitizer')
  7. module.exports =
  8. deleteProject: (req, res)->
  9. project_id = req.params.Project_id
  10. logger.log project_id:project_id, "deleting project"
  11. projectDeleter.deleteProject project_id, (err)->
  12. if err?
  13. res.send 500
  14. else
  15. res.send 200
  16. cloneProject: (req, res)->
  17. metrics.inc "cloned-project"
  18. project_id = req.params.Project_id
  19. projectName = req.body.projectName
  20. logger.log project_id:project_id, projectName:projectName, "cloning project"
  21. if !req.session.user?
  22. return res.send redir:"/register"
  23. projectDuplicator.duplicate req.session.user, project_id, projectName, (err, project)->
  24. if err?
  25. logger.error err:err, project_id: project_id, user_id: req.session.user._id, "error cloning project"
  26. return next(err)
  27. res.send(project_id:project._id)
  28. newProject: (req, res)->
  29. user = req.session.user
  30. projectName = sanitize.escape(req.body.projectName)
  31. template = sanitize.escape(req.body.template)
  32. logger.log user: user, type: template, name: projectName, "creating project"
  33. if template == 'example'
  34. projectCreationHandler.createExampleProject user._id, projectName, (err, project)->
  35. if err?
  36. logger.error err: err, project: project, user: user, name: projectName, type: "example", "error creating project"
  37. res.send 500
  38. else
  39. logger.log project: project, user: user, name: projectName, type: "example", "created project"
  40. res.send {project_id:project._id}
  41. else
  42. projectCreationHandler.createBasicProject user._id, projectName, (err, project)->
  43. if err?
  44. logger.error err: err, project: project, user: user, name: projectName, type: "basic", "error creating project"
  45. res.send 500
  46. else
  47. logger.log project: project, user: user, name: projectName, type: "basic", "created project"
  48. res.send {project_id:project._id}