mirror of
https://github.com/overleaf/overleaf.git
synced 2024-10-24 21:12:38 -04:00
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
|
const express = require('express')
|
||
|
const bodyParser = require('body-parser')
|
||
|
const app = express()
|
||
|
|
||
|
const projects = {}
|
||
|
|
||
|
const MessageHttpController = {
|
||
|
getGlobalMessages: (req, res) => {
|
||
|
res.send(projects[req.params.project_id] || [])
|
||
|
},
|
||
|
sendGlobalMessage: (req, res) => {
|
||
|
const projectId = req.params.project_id
|
||
|
const message = {
|
||
|
id: Math.random().toString(),
|
||
|
content: req.body.content,
|
||
|
timestamp: Date.now(),
|
||
|
user_id: req.body.user_id
|
||
|
}
|
||
|
projects[projectId] = projects[projectId] || []
|
||
|
projects[projectId].push(message)
|
||
|
res.sendStatus(201).send(Object.assign({ room_id: projectId }, message))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const MockChatApi = {
|
||
|
run() {
|
||
|
app.use(bodyParser.json())
|
||
|
|
||
|
app.get(
|
||
|
'/project/:project_id/messages',
|
||
|
MessageHttpController.getGlobalMessages
|
||
|
)
|
||
|
app.post(
|
||
|
'/project/:project_id/messages',
|
||
|
MessageHttpController.sendGlobalMessage
|
||
|
)
|
||
|
|
||
|
app
|
||
|
.listen(3010, error => {
|
||
|
if (error) {
|
||
|
throw error
|
||
|
}
|
||
|
})
|
||
|
.on('error', error => {
|
||
|
console.error('error starting MockChatApi:', error.message)
|
||
|
return process.exit(1)
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
MockChatApi.run()
|