| 123456789101112131415161718192021222324252627282930313233343536373839 |
- logger = require('logger-sharelatex')
- ReferencesHandler = require('./ReferencesHandler')
- settings = require('settings-sharelatex')
- EditorRealTimeController = require("../Editor/EditorRealTimeController")
- module.exports = ReferencesController =
- index: (req, res) ->
- projectId = req.params.Project_id
- shouldBroadcast = req.body.shouldBroadcast
- docIds = req.body.docIds
- if (!docIds or !(docIds instanceof Array))
- logger.err {projectId, docIds}, "docIds is not valid, should be either Array or String 'ALL'"
- return res.sendStatus 400
- logger.log {projectId, docIds: docIds}, "index references for project"
- ReferencesHandler.index projectId, docIds, (err, data) ->
- if err?
- logger.err {err, projectId}, "error indexing all references"
- return res.sendStatus 500
- ReferencesController._handleIndexResponse(req, res, projectId, shouldBroadcast, data)
- indexAll: (req, res) ->
- projectId = req.params.Project_id
- shouldBroadcast = req.body.shouldBroadcast
- logger.log {projectId}, "index all references for project"
- ReferencesHandler.indexAll projectId, (err, data) ->
- if err?
- logger.err {err, projectId}, "error indexing all references"
- return res.sendStatus 500
- ReferencesController._handleIndexResponse(req, res, projectId, shouldBroadcast, data)
- _handleIndexResponse: (req, res, projectId, shouldBroadcast, data) ->
- if !data? or !data.keys?
- return res.json({projectId, keys: []})
- if shouldBroadcast
- logger.log {projectId}, "emitting new references keys to connected clients"
- EditorRealTimeController.emitToRoom projectId, 'references:keys:updated', data.keys
- return res.json data
|