ChatController.coffee 1.0 KB

1234567891011121314151617181920212223242526
  1. ChatApiHandler = require("./ChatApiHandler")
  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. content = 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. ChatApiHandler.sendGlobalMessage project_id, user_id, content, (err, message) ->
  14. return next(err) if err?
  15. EditorRealTimeController.emitToRoom project_id, "new-chat-message", message, (err)->
  16. res.send(204)
  17. getMessages: (req, res, next)->
  18. project_id = req.params.project_id
  19. query = req.query
  20. logger.log project_id:project_id, query:query, "getting messages"
  21. ChatApiHandler.getGlobalMessages project_id, query.limit, query.before, (err, messages) ->
  22. return next(err) if err?
  23. logger.log length: messages?.length, "sending messages to client"
  24. res.json messages