ChatController.coffee 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. ChatHandler = require("./ChatHandler")
  2. EditorRealTimeController = require("../Editor/EditorRealTimeController")
  3. logger = require("logger-sharelatex")
  4. AuthenticationController = require('../Authentication/AuthenticationController')
  5. module.exports =
  6. sendMessage: (req, res, next)->
  7. project_id = req.params.Project_id
  8. messageContent = req.body.content
  9. user_id = AuthenticationController.getLoggedInUserId(req)
  10. if !user_id?
  11. err = new Error('no logged-in user')
  12. return next(err)
  13. ChatHandler.sendMessage project_id, user_id, messageContent, (err, builtMessge)->
  14. if err?
  15. logger.err err:err, project_id:project_id, user_id:user_id, messageContent:messageContent, "problem sending message to chat api"
  16. return res.sendStatus(500)
  17. EditorRealTimeController.emitToRoom project_id, "new-chat-message", builtMessge, (err)->
  18. res.send()
  19. getMessages: (req, res)->
  20. project_id = req.params.Project_id
  21. query = req.query
  22. logger.log project_id:project_id, query:query, "getting messages"
  23. ChatHandler.getMessages project_id, query, (err, messages)->
  24. if err?
  25. logger.err err:err, query:query, "problem getting messages from chat api"
  26. return res.sendStatus 500
  27. logger.log length:messages?.length, "sending messages to client"
  28. res.set 'Content-Type', 'application/json'
  29. res.send messages