TpdsController.coffee 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. tpdsUpdateHandler = require('./TpdsUpdateHandler')
  2. UpdateMerger = require "./UpdateMerger"
  3. logger = require('logger-sharelatex')
  4. Path = require('path')
  5. metrics = require("../../infrastructure/Metrics")
  6. module.exports =
  7. mergeUpdate: (req, res)->
  8. metrics.inc("tpds.merge-update")
  9. {filePath, user_id, projectName} = parseParams(req)
  10. logger.log user_id:user_id, filePath:filePath, fullPath:req.params[0], projectName:projectName, sl_req_id:req.sl_req_id, "reciving update request from tpds"
  11. tpdsUpdateHandler.newUpdate user_id, projectName, filePath, req, req.sl_req_id, (err)->
  12. logger.log user_id:user_id, filePath:filePath, fullPath:req.params[0], sl_req_id:req.sl_req_id, "sending response that tpdsUpdate has been completed"
  13. if err?
  14. logger.err err:err, user_id:user_id, filePath:filePath, "error reciving update from tpds"
  15. res.send(500)
  16. else
  17. logger.log user_id:user_id, filePath:filePath, projectName:projectName, "telling tpds update has been processed"
  18. res.send 200
  19. req.session.destroy()
  20. deleteUpdate: (req, res)->
  21. metrics.inc("tpds.delete-update")
  22. {filePath, user_id, projectName} = parseParams(req)
  23. logger.log user_id:user_id, filePath:filePath, sl_req_id:req.sl_req_id, projectName:projectName, fullPath:req.params[0], "reciving delete request from tpds"
  24. tpdsUpdateHandler.deleteUpdate user_id, projectName, filePath, req.sl_req_id, (err)->
  25. if err?
  26. logger.err err:err, user_id:user_id, filePath:filePath, "error reciving update from tpds"
  27. res.send(500)
  28. else
  29. logger.log user_id:user_id, filePath:filePath, projectName:projectName, "telling tpds delete has been processed"
  30. res.send 200
  31. req.session.destroy()
  32. updateProjectContents: (req, res, next = (error) ->) ->
  33. {project_id} = req.params
  34. path = "/" + req.params[0] # UpdateMerger expects leading slash
  35. logger.log project_id: project_id, path: path, "received project contents update"
  36. UpdateMerger.mergeUpdate project_id, path, req, (error) ->
  37. return next(error) if error?
  38. res.send(200)
  39. req.session.destroy()
  40. deleteProjectContents: (req, res, next = (error) ->) ->
  41. {project_id} = req.params
  42. path = "/" + req.params[0] # UpdateMerger expects leading slash
  43. logger.log project_id: project_id, path: path, "received project contents delete request"
  44. UpdateMerger.deleteUpdate project_id, path, (error) ->
  45. return next(error) if error?
  46. res.send(200)
  47. req.session.destroy()
  48. parseParams: parseParams = (req)->
  49. path = req.params[0]
  50. user_id = req.params.user_id
  51. path = Path.join("/",path)
  52. if path.substring(1).indexOf('/') == -1
  53. filePath = "/"
  54. projectName = path.substring(1)
  55. else
  56. filePath = path.substring(path.indexOf("/",1))
  57. projectName = path.substring(0, path.indexOf("/",1))
  58. projectName = projectName.replace("/","")
  59. return filePath:filePath, user_id:user_id, projectName:projectName