feature/IO-3357-Reynolds-and-Reynolds-DMS-API-Integration - Checkpoint - Remove old attempt at Reynolds Integration in favor of new library.

This commit is contained in:
Dave
2025-10-29 10:42:32 -04:00
parent 319f3220ed
commit e06f0f9918
36 changed files with 2468 additions and 3736 deletions

View File

@@ -1,55 +1,16 @@
/**
* @file rr-logger.js
* @description Structured logger for Reynolds & Reynolds (Rome) integration.
* Mirrors PBS/Fortellis log shape for consistent log parsing.
*/
const logger = require("../utils/logger");
const util = require("util");
const dayjs = require("dayjs");
/**
* @typedef {Object} LogContext
* @property {string} [jobid]
* @property {string} [action]
* @property {string} [stage]
* @property {string} [endpoint]
* @property {Object} [meta]
*/
/**
* Emit a structured log event to console, Socket.IO, or upstream logger.
* @param {Socket|null} socket - Optional socket for WsLogger passthrough
* @param {"info"|"debug"|"warn"|"error"} level
* @param {string} message - Primary log message
* @param {LogContext|any} [context]
*/
function RRLogger(socket, level, message, context = {}) {
const logEvent = {
source: "RR",
level,
timestamp: dayjs().toISOString(),
message,
...context
};
// Console log (stdout/stderr)
const serialized = `[RR] ${logEvent.timestamp} [${level.toUpperCase()}] ${message}`;
if (level === "error" || level === "warn") {
console.error(serialized, context ? util.inspect(context, { depth: 4, colors: false }) : "");
} else {
console.log(serialized, context ? util.inspect(context, { depth: 4, colors: false }) : "");
}
// Optional: forward to WsLogger (if your socket is configured that way)
try {
if (socket && typeof socket.emit === "function") {
socket.emit("rr-log-event", logEvent);
} else if (global.WsLogger && typeof global.WsLogger.createLogEvent === "function") {
global.WsLogger.createLogEvent(socket, level.toUpperCase(), message, context.jobid, context);
function RRLogger(socket) {
return function log(level = "info", message = "", ctx = {}) {
// Console
const fn = logger.logger[level] || logger.log;
fn(`[RR] ${new Date().toISOString()} [${level.toUpperCase()}] ${message}`, ctx);
try {
socket?.emit?.("RR:LOG", { level, message, ctx, ts: Date.now() });
} catch {
/* ignore */
}
} catch (e) {
console.error("[RRLogger] forwarding error", e.message);
}
};
}
module.exports = RRLogger;