release/2026-02-27 - Final RR debug fix

This commit is contained in:
Dave
2026-03-04 15:17:56 -05:00
parent 8f132ca14d
commit a7a7551dae
3 changed files with 70 additions and 21 deletions

View File

@@ -12,7 +12,7 @@ const { createRRCustomer } = require("./rr-customers");
const { ensureRRServiceVehicle } = require("./rr-service-vehicles");
const { classifyRRVendorError } = require("./rr-errors");
const { markRRExportSuccess, insertRRFailedExportLog } = require("./rr-export-logs");
const { withRRRequestXml } = require("./rr-log-xml");
const { withRRRequestXml, extractRRXmlPair } = require("./rr-log-xml");
const {
makeVehicleSearchPayloadFromJob,
ownersFromVinBlocks,
@@ -49,6 +49,21 @@ const resolveJobId = (explicit, payload, job) => explicit || payload?.jobId || j
*/
const resolveVin = ({ tx, job }) => tx?.jobData?.vin || job?.v_vin || null;
/**
* Add request/response XML to socket event payloads when available.
* @param rrObj
* @param payload
* @returns {*}
*/
const withRRXmlSocketPayload = (rrObj, payload = {}) => {
const { requestXml, responseXml } = extractRRXmlPair(rrObj);
return {
...payload,
...(requestXml ? { requestXml } : {}),
...(responseXml ? { responseXml } : {})
};
};
/**
* Sort vehicle owners first in the list, preserving original order otherwise.
* @param list
@@ -474,7 +489,14 @@ const registerRREvents = ({ socket, redisHelpers }) => {
);
try {
socket.emit("export-failed", { vendor: "rr", jobId: rid, error: error.message });
socket.emit(
"export-failed",
withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
})
);
} catch {
//
}
@@ -870,9 +892,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR early RO creation failed",
...withRRXmlSocketPayload(result, {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR early RO creation failed"
}),
...cls
});
@@ -923,9 +947,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
try {
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: error.message,
...withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
}),
...cls
});
socket.emit("rr-user-notice", { jobId: rid, ...cls });
@@ -1173,7 +1199,14 @@ const registerRREvents = ({ socket, redisHelpers }) => {
);
try {
socket.emit("export-failed", { vendor: "rr", jobId: rid, error: error.message });
socket.emit(
"export-failed",
withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
})
);
} catch {
//
}
@@ -1538,9 +1571,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR export failed",
...withRRXmlSocketPayload(result, {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || result?.error || "RR export failed"
}),
...cls
});
@@ -1591,9 +1626,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
try {
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: error.message,
...withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
}),
...cls
});
socket.emit("rr-user-notice", { jobId: rid, ...cls });
@@ -1725,9 +1762,11 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
socket.emit("export-failed", {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || finalizeResult?.error || "RR finalize failed",
...withRRXmlSocketPayload(finalizeResult, {
vendor: "rr",
jobId: rid,
error: cls?.friendlyMessage || finalizeResult?.error || "RR finalize failed"
}),
...cls
});
ack?.({ ok: false, error: cls.friendlyMessage || "RR finalize failed", classification: cls });
@@ -1770,7 +1809,17 @@ const registerRREvents = ({ socket, redisHelpers }) => {
});
try {
socket.emit("export-failed", { vendor: "rr", jobId: rid, error: error.message, ...cls });
socket.emit(
"export-failed",
{
...withRRXmlSocketPayload(error, {
vendor: "rr",
jobId: rid,
error: error.message
}),
...cls
}
);
} catch {
//
}