ReferencesSearchController.coffee 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. logger = require('logger-sharelatex')
  2. ReferencesSearchHandler = require('./ReferencesSearchHandler')
  3. ProjectLocator = require("../Project/ProjectLocator")
  4. settings = require('settings-sharelatex')
  5. module.exports = ReferencesSearchController =
  6. indexFile: (req, res) ->
  7. project_id = req.params.Project_id
  8. doc_id = req.body.docId
  9. logger.log {project_id, doc_id}, "indexing references"
  10. if !doc_id
  11. logger.log project_id: project_id, "no fileUrl supplied"
  12. return res.send 400
  13. ProjectLocator.findElement {
  14. project_id: project_id,
  15. element_id: doc_id,
  16. type: 'doc'
  17. }, (err, doc) ->
  18. if err?
  19. logger.err {err, project_id, doc_id}, "error finding doc to index"
  20. return res.send 500
  21. doc_url = ReferencesSearchController._buildDocUrl project_id, doc_id
  22. ReferencesSearchHandler.indexFile project_id, doc_url, (err) ->
  23. if err
  24. logger.err {err, project_id, doc_id}, "error indexing references file"
  25. return res.send 500
  26. res.send 200
  27. getKeys: (req, res) ->
  28. project_id = req.params.Project_id
  29. logger.log {project_id}, "getting project references keys"
  30. ReferencesSearchHandler.getKeys project_id, (err, data) ->
  31. if err
  32. logger.err {err, project_id}, "error getting references keys"
  33. return res.send 500
  34. return res.json data
  35. _buildDocUrl: (project_id, doc_id) ->
  36. "#{settings.apis.web.url}/project/#{project_id}/doc/#{doc_id}"