ChatHandler = require("./ChatHandler") EditorRealTimeController = require("../Editor/EditorRealTimeController") logger = require("logger-sharelatex") AuthenticationController = require('../Authentication/AuthenticationController') module.exports = sendMessage: (req, res, next)-> project_id = req.params.Project_id messageContent = req.body.content user_id = AuthenticationController.getLoggedInUserId(req) if !user_id? err = new Error('no logged-in user') return next(err) ChatHandler.sendMessage project_id, user_id, messageContent, (err, builtMessge)-> if err? logger.err err:err, project_id:project_id, user_id:user_id, messageContent:messageContent, "problem sending message to chat api" return res.sendStatus(500) EditorRealTimeController.emitToRoom project_id, "new-chat-message", builtMessge, (err)-> res.send() getMessages: (req, res)-> project_id = req.params.Project_id query = req.query logger.log project_id:project_id, query:query, "getting messages" ChatHandler.getMessages project_id, query, (err, messages)-> if err? logger.err err:err, query:query, "problem getting messages from chat api" return res.sendStatus 500 logger.log length:messages?.length, "sending messages to client" res.set 'Content-Type', 'application/json' res.send messages