middlewares/errorHandlingMiddleware.jsjavascript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const errors_1 = require("../utils/errors.js");
/**
* Middleware to send an appropriate status code response depending on the occurring error.
* - {@link NotFoundError}: status code 404
* - {@link LineupConflictError}: status code 409
* @param {Error} err Error to handle and to log
* @param {Request} req Incoming request object
* @param {Response} res Outgoing response object
* @param {Function} next Next handler function (not called)
*/
function errorHandlingMiddleWare(error, req, res, next) {
if (!res.headersSent) {
if (error instanceof errors_1.RequestOrderError ||
error instanceof errors_1.LineupConflictError)
res.status(409).send(error.message);
else if (error instanceof errors_1.NotFoundError)
res
.status(404)
.send(`${req.t("responses.not-found")}${error.message ? `: ${error.message}` : ""}`);
else if (error instanceof errors_1.FaultyInputError)
res.status(400).send(error.message);
else if (error instanceof errors_1.AuthorizationError)
res
.status(401)
.send(`Unauthorized${error.message ? `: ${error.message}` : ""}`);
else if (error instanceof errors_1.AccessDeniedError)
res.status(403).send(req.t("responses.access-denied"));
else
res.status(500).render("../src/views/error.ejs", {
action: "generic error handling",
data: JSON.stringify({ userId: req.actingUserId, url: req.url }),
error: error,
timestamp: new Date().toLocaleString(req.locale),
}); // njsscan-ignore: express_lfr_warning
}
next(error);
}
module.exports = { errorHandlingMiddleWare };