diff --git a/src/canvases.json b/src/canvases.json index f50e58b..82c9753 100644 --- a/src/canvases.json +++ b/src/canvases.json @@ -206,6 +206,6 @@ "ranked" : false, "req": 0, "sd": "2020-03-15", - "desc": "Special canvas to spread aweareness of coronavirus" + "desc": "Special canvas to spread aweareness of coronavirus (doesn't count towards statistics)" } } diff --git a/src/routes/api/index.js b/src/routes/api/index.js index d6b71aa..d857843 100644 --- a/src/routes/api/index.js +++ b/src/routes/api/index.js @@ -7,6 +7,7 @@ import bodyParser from 'body-parser'; import session from '../../core/session'; import passport from '../../core/passport'; +import logger from '../../core/logger'; import { User } from '../../data/models'; import { getIPFromRequest, getIPv6Subnet } from '../../utils/ip'; @@ -48,6 +49,16 @@ router.use(async (req, res, next) => { router.use(bodyParser.json()); +router.use((err, req, res, next) => { + if (err) { + logger.warn(`Got invalid json from ${req.trueIp} on ${req.originalUrl}`); + res.status(400); + res.status(400).json({ errors: [{ msg: 'Invalid Request' }] }); + } else { + next(); + } +}); + /* * rate limiting should occure outside, * with nginx or whatever @@ -69,5 +80,4 @@ router.post('/mctp', mctp); router.use('/auth', auth(passport)); - export default router;