Files
Verso/services/web/app/src/Features/Errors/HttpErrorHandler.js
T
Miguel Serrano 63503f2079 Merge pull request #2984 from overleaf/msm-oerror-remove-bad-request-error
Replace HTTPErrors.BadRequestError with calls to badRequest() handler

GitOrigin-RevId: 57a91a13bde942ee373e235ee925f1c76a0f4e88
2020-07-17 02:07:12 +00:00

57 lines
1.4 KiB
JavaScript

const logger = require('logger-sharelatex')
function renderJSONError(res, message, info) {
const fullInfo = { ...info, message }
if (info.message) {
logger.warn(
info,
`http error info shouldn't contain a 'message' field, will be overridden`
)
}
res.json(fullInfo)
}
module.exports = {
badRequest(req, res, message, info) {
res.status(400)
switch (req.accepts(['html', 'json'])) {
case 'html':
return res.render('general/400', {
title: 'Client Error',
message: message
})
case 'json':
return renderJSONError(res, message, info || {})
default:
return res.send('client error')
}
},
forbidden(req, res, message = 'restricted', info = {}) {
res.status(403)
switch (req.accepts(['html', 'json'])) {
case 'html':
return res.render('user/restricted', { title: 'restricted' })
case 'json':
return renderJSONError(res, message, info)
default:
return res.send('restricted')
}
},
unprocessableEntity(req, res, message = 'unprocessable entity', info = {}) {
res.status(422)
switch (req.accepts(['html', 'json'])) {
case 'html':
return res.render('general/400', {
title: 'Client Error',
message: message
})
case 'json':
return renderJSONError(res, message, info)
default:
return res.send('unprocessable entity')
}
}
}