63503f2079
Replace HTTPErrors.BadRequestError with calls to badRequest() handler GitOrigin-RevId: 57a91a13bde942ee373e235ee925f1c76a0f4e88
57 lines
1.4 KiB
JavaScript
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')
|
|
}
|
|
}
|
|
}
|