| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /* eslint-disable
- n/handle-callback-err,
- max-len,
- no-unused-vars,
- */
- // TODO: This file was created by bulk-decaffeinate.
- // Fix any style issues and re-enable lint.
- /*
- * decaffeinate suggestions:
- * DS101: Remove unnecessary use of Array.from
- * DS102: Remove unnecessary code created because of implicit returns
- * DS207: Consider shorter variations of null checks
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let ChatController
- const ChatApiHandler = require('./ChatApiHandler')
- const EditorRealTimeController = require('../Editor/EditorRealTimeController')
- const SessionManager = require('../Authentication/SessionManager')
- const UserInfoManager = require('../User/UserInfoManager')
- const UserInfoController = require('../User/UserInfoController')
- const ChatManager = require('./ChatManager')
- const logger = require('@overleaf/logger')
- module.exports = ChatController = {
- sendMessage(req, res, next) {
- const { project_id: projectId } = req.params
- const { content, client_id: clientId } = req.body
- const userId = SessionManager.getLoggedInUserId(req.session)
- if (userId == null) {
- const err = new Error('no logged-in user')
- return next(err)
- }
- return ChatApiHandler.sendGlobalMessage(
- projectId,
- userId,
- content,
- function (err, message) {
- if (err != null) {
- return next(err)
- }
- return UserInfoManager.getPersonalInfo(
- message.user_id,
- function (err, user) {
- if (err != null) {
- return next(err)
- }
- message.user = UserInfoController.formatPersonalInfo(user)
- message.clientId = clientId
- EditorRealTimeController.emitToRoom(
- projectId,
- 'new-chat-message',
- message
- )
- return res.sendStatus(204)
- }
- )
- }
- )
- },
- getMessages(req, res, next) {
- const { project_id: projectId } = req.params
- const { query } = req
- return ChatApiHandler.getGlobalMessages(
- projectId,
- query.limit,
- query.before,
- function (err, messages) {
- if (err != null) {
- return next(err)
- }
- return ChatManager.injectUserInfoIntoThreads(
- { global: { messages } },
- function (err) {
- if (err != null) {
- return next(err)
- }
- return res.json(messages)
- }
- )
- }
- )
- },
- }
|