overleaf/services/web/test/acceptance/src/helpers/MockChatApi.js
Shane Kilkelly f4950c21bf Merge pull request #2870 from overleaf/sk-restrict-chat
Block restricted users from Chat endpoints

GitOrigin-RevId: caec8fe2bc93d567dd57f32dc765bd74ba53e933
2020-06-05 02:09:58 +00:00

51 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()