| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /* eslint-disable
- camelcase,
- 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
- * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
- */
- let HttpApiController
- const WebsocketLoadBalancer = require('./WebsocketLoadBalancer')
- const DrainManager = require('./DrainManager')
- const logger = require('logger-sharelatex')
- module.exports = HttpApiController = {
- sendMessage(req, res, next) {
- logger.log({ message: req.params.message }, 'sending message')
- if (Array.isArray(req.body)) {
- for (const payload of Array.from(req.body)) {
- WebsocketLoadBalancer.emitToRoom(
- req.params.project_id,
- req.params.message,
- payload
- )
- }
- } else {
- WebsocketLoadBalancer.emitToRoom(
- req.params.project_id,
- req.params.message,
- req.body
- )
- }
- return res.send(204)
- }, // No content
- startDrain(req, res, next) {
- const io = req.app.get('io')
- let rate = req.query.rate || '4'
- rate = parseFloat(rate) || 0
- logger.log({ rate }, 'setting client drain rate')
- DrainManager.startDrain(io, rate)
- return res.send(204)
- },
- disconnectClient(req, res, next) {
- const io = req.app.get('io')
- const { client_id } = req.params
- const client = io.sockets.sockets[client_id]
- if (!client) {
- logger.info({ client_id }, 'api: client already disconnected')
- res.sendStatus(404)
- return
- }
- logger.warn({ client_id }, 'api: requesting client disconnect')
- client.on('disconnect', () => res.sendStatus(204))
- return client.disconnect()
- }
- }
|