HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/myc/api-parametros/dist/middleware/auditor.middleware.js
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuditMiddleware = void 0;
const common_1 = require("@nestjs/common");
const auditor_service_1 = require("../app/auditor/services/auditor.service");
const jwt_1 = require("@nestjs/jwt");
const jsonwebtoken_1 = require("jsonwebtoken");
const messages_1 = require("../shared/messages/messages");
let AuditMiddleware = class AuditMiddleware {
    constructor(auditorService, jwtService) {
        this.auditorService = auditorService;
        this.jwtService = jwtService;
    }
    async use(req, res, next) {
        const { method, originalUrl, headers, body } = req;
        const originalSend = res.send;
        res.send = function (data, ...restArgs) {
            res.locals.data = data;
            return originalSend.apply(res, [data, ...restArgs]);
        };
        let tokenExpiredAt = null;
        let userId = null;
        if (headers.authorization) {
            const token = headers.authorization.split(' ')[1];
            try {
                const decoded = this.jwtService.verify(token, { secret: 'puma1984' });
                userId = decoded.sub;
            }
            catch (e) {
                if (e instanceof jsonwebtoken_1.TokenExpiredError) {
                    tokenExpiredAt = e.expiredAt;
                    return res.status(401).json({
                        status: 401,
                        message: messages_1.default.error.token.message,
                        error: messages_1.default.error.token.summary,
                    });
                }
                else {
                    return res.status(401).json({
                        status: 401,
                        message: messages_1.default.error.token.message,
                        error: messages_1.default.error.token.summary,
                    });
                }
            }
        }
        res.on('finish', async () => {
            const response = res.locals.data || {};
            if (userId) {
                await this.auditorService.log({
                    userId,
                    method,
                    url: originalUrl,
                    headers,
                    body,
                    response: typeof response === 'string' ? JSON.parse(response) : response,
                    tokenExpiredAt,
                });
            }
        });
        next();
    }
};
exports.AuditMiddleware = AuditMiddleware;
exports.AuditMiddleware = AuditMiddleware = __decorate([
    (0, common_1.Injectable)(),
    __metadata("design:paramtypes", [auditor_service_1.AuditService,
        jwt_1.JwtService])
], AuditMiddleware);
//# sourceMappingURL=auditor.middleware.js.map