ReferencesSearchController.coffee 1.0 KB

1234567891011121314151617181920212223
  1. logger = require('logger-sharelatex')
  2. ReferencesSearchHandler = require('./ReferencesSearchHandler')
  3. settings = require('settings-sharelatex')
  4. EditorRealTimeController = require("../Editor/EditorRealTimeController")
  5. module.exports = ReferencesSearchController =
  6. index: (req, res) ->
  7. projectId = req.params.Project_id
  8. shouldBroadcast = req.body.shouldBroadcast
  9. docIds = req.body.docIds
  10. if (!docIds or (!(docIds instanceof Array) and (docIds != 'ALL')))
  11. logger.err {projectId, docIds}, "docIds is not valid, should be either Array or String 'ALL'"
  12. return res.send 400
  13. logger.log {projectId, docIds: docIds}, "index references for project"
  14. ReferencesSearchHandler.index projectId, docIds, (err, data) ->
  15. if err
  16. logger.err {err, projectId}, "error indexing references"
  17. return res.send 500
  18. if shouldBroadcast
  19. logger.log {projectId}, "emitting new references keys to connected clients"
  20. EditorRealTimeController.emitToRoom projectId, 'references:keys:updated', data.keys
  21. return res.json data