middlewares/loggingMiddleware.jsjavascript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.loggerMiddleWare = loggerMiddleWare;
exports.errorLoggingMiddleWare = errorLoggingMiddleWare;
const winston_1 = __importDefault(require("../plugins/winston"));
/**
 * Middleware to log every incoming request
 * @param {Request} req Incoming request object
 * @param {Response} res Outgoing response object
 * @param {Function} next Next handler function
 */
function loggerMiddleWare(req, _res, next) {
    if (["/health", "/mcp"].includes(req.path))
        return next();
    if (!req.body)
        req.body = {};
    // eslint-disable-next-line @typescript-eslint/no-unused-vars
    const { password = null, ...requestBody } = req.body;
    winston_1.default.info(`${req.method} ${req.url} ; Referrer: ${req.get("Referrer") || null} ; Body: ${JSON.stringify(requestBody)};`);
    next();
}
/**
 * Middleware to handle all errors
 * @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 errorLoggingMiddleWare(err, req, _res, next) {
    // Log the error message at the error level
    winston_1.default.error(`${err.name}: ${err.message || "No error message provided"}; ${req.rawBody || "body not available"}`);
    next(err);
}