mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2024-11-30 19:51:12 -05:00
55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
|
const config = require('./config')
|
||
|
|
||
|
function responseError (res, code: number, detail: string, msg: string): void {
|
||
|
res.status(code).render('error.ejs', {
|
||
|
title: code + ' ' + detail + ' ' + msg,
|
||
|
code: code,
|
||
|
detail: detail,
|
||
|
msg: msg,
|
||
|
opengraph: []
|
||
|
})
|
||
|
}
|
||
|
|
||
|
function errorForbidden (res): void {
|
||
|
const { req } = res
|
||
|
if (req.user) {
|
||
|
responseError(res, 403, 'Forbidden', 'oh no.')
|
||
|
} else {
|
||
|
if (!req.session) req.session = {}
|
||
|
req.session.returnTo = req.originalUrl || config.serverUrl + '/'
|
||
|
req.flash('error', 'You are not allowed to access this page. Maybe try logging in?')
|
||
|
res.redirect(config.serverURL + '/')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function errorNotFound (res): void {
|
||
|
responseError(res, 404, 'Not Found', 'oops.')
|
||
|
}
|
||
|
|
||
|
function errorBadRequest (res): void {
|
||
|
responseError(res, 400, 'Bad Request', 'something not right.')
|
||
|
}
|
||
|
|
||
|
function errorTooLong (res): void {
|
||
|
responseError(res, 413, 'Payload Too Large', 'Shorten your note!')
|
||
|
}
|
||
|
|
||
|
function errorInternalError (res): void {
|
||
|
responseError(res, 500, 'Internal Error', 'wtf.')
|
||
|
}
|
||
|
|
||
|
function errorServiceUnavailable (res): void {
|
||
|
responseError(res, 503, 'Service Unvavilable', 'I\'m busy right now, try again later.')
|
||
|
}
|
||
|
|
||
|
const errors = {
|
||
|
errorForbidden: errorForbidden,
|
||
|
errorNotFound: errorNotFound,
|
||
|
errorBadRequest: errorBadRequest,
|
||
|
errorTooLong: errorTooLong,
|
||
|
errorInternalError: errorInternalError,
|
||
|
errorServiceUnavailable: errorServiceUnavailable
|
||
|
}
|
||
|
|
||
|
export { errors }
|