const express = require('express'); const { uaParser, checkBan, requireJwtAuth, messageIpLimiter, concurrentLimiter, messageUserLimiter, } = require('~/server/middleware'); const { isEnabled } = require('~/server/utils'); const chat = require('./chat'); const { LIMIT_CONCURRENT_MESSAGES, LIMIT_MESSAGE_IP, LIMIT_MESSAGE_USER } = process.env ?? {}; const router = express.Router(); router.use(requireJwtAuth); router.use(checkBan); router.use(uaParser); if (isEnabled(LIMIT_CONCURRENT_MESSAGES)) { router.use(concurrentLimiter); } if (isEnabled(LIMIT_MESSAGE_IP)) { router.use(messageIpLimiter); } if (isEnabled(LIMIT_MESSAGE_USER)) { router.use(messageUserLimiter); } router.use('/chat', chat); module.exports = router;