feature/IO-3357-Reynolds-and-Reynolds-DMS-API-Integration - Enhance logging

This commit is contained in:
Dave
2025-11-13 15:39:29 -05:00
parent 9c2c0b665d
commit 4c250f6189
9 changed files with 98 additions and 128 deletions

View File

@@ -177,16 +177,20 @@ const rrMultiCustomerSearch = async ({ bodyshop, job, socket, redisHelpers }) =>
for (const { q, fromVin } of queriesList) {
try {
CreateRRLogEvent(socket, "DEBUG", `{RR-SEARCH} Executing ${q.kind} query`, { q });
const res = await rrCombinedSearch(bodyshop, q);
const multiResponse = await rrCombinedSearch(bodyshop, q);
CreateRRLogEvent(socket, "SILLY", "Multi Customer Search - raw combined search", { response: multiResponse });
if (fromVin) {
const blocks = Array.isArray(res?.data) ? res.data : Array.isArray(res) ? res : [];
ownersSet = ownersFromVinBlocks(blocks, job?.v_vin);
const multiBlocks = Array.isArray(multiResponse?.data) ? multiResponse.data : [];
ownersSet = ownersFromVinBlocks(multiBlocks, job?.v_vin);
try {
await redisHelpers.setSessionTransactionData(
socket.id,
getTransactionType(job.id),
RRCacheEnums.VINCandidates,
blocks,
multiBlocks,
defaultRRTTL
);
} catch {
@@ -194,7 +198,7 @@ const rrMultiCustomerSearch = async ({ bodyshop, job, socket, redisHelpers }) =>
}
}
const norm = normalizeCustomerCandidates(res, { ownersSet });
const norm = normalizeCustomerCandidates(multiResponse, { ownersSet });
merged.push(...norm);
} catch (e) {
CreateRRLogEvent(socket, "WARN", "Multi-search subquery failed", { kind: q.kind, error: e.message });
@@ -220,24 +224,29 @@ const registerRREvents = ({ socket, redisHelpers }) => {
CreateRRLogEvent(socket, "DEBUG", "rr-lookup-combined: begin", { jobid, params });
const res = await rrCombinedSearch(bodyshop, params || {});
const response = await rrCombinedSearch(bodyshop, params || {});
CreateRRLogEvent(socket, "SILLY", "rr-lookup-combined: received response", {
response
});
let ownersSet = null;
if ((params?.kind || "").toLowerCase() === "vin") {
const blocks = Array.isArray(res?.data) ? res.data : Array.isArray(res) ? res : [];
const blocks = Array.isArray(response?.data) ? response.data : [];
ownersSet = ownersFromVinBlocks(blocks);
}
const normalized = sortVehicleOwnerFirst(normalizeCustomerCandidates(res, { ownersSet }));
const normalized = sortVehicleOwnerFirst(normalizeCustomerCandidates(response, { ownersSet }));
const rid = resolveJobId(jobid, { jobid }, null);
const decorated = normalized.map((c) => (c.vinOwner != null ? c : { ...c, vinOwner: !!c.isVehicleOwner }));
cb?.({ jobid: rid, data: decorated });
socket.emit("rr-select-customer", decorated);
CreateRRLogEvent(socket, "DEBUG", "rr-lookup-combined: emitted rr-select-customer", {
count: decorated.length,
res
count: decorated.length
});
} catch (e) {
CreateRRLogEvent(socket, "ERROR", "RR combined lookup error", { error: e.message, jobid });
@@ -291,10 +300,13 @@ const registerRREvents = ({ socket, redisHelpers }) => {
// 2) Fetch + cache when no cache or forced refresh
if (!result) {
const live = await rrGetAdvisors(bodyshop, { departmentType: requestedDept });
result = Array.isArray(live) ? live : [];
const getAdvisorsCall = await rrGetAdvisors(bodyshop, { departmentType: requestedDept });
result = Array.isArray(getAdvisorsCall?.data) ? getAdvisorsCall.data : [];
try {
await redisHelpers.setProviderCache(ns, field, result, ADVISORS_CACHE_TTL);
CreateRRLogEvent(socket, "SILLY", "rr-get-advisors: fetched live data", {
getAdvisorsCall
});
CreateRRLogEvent(socket, "DEBUG", "rr-get-advisors: cache populated", {
ns,
field,
@@ -440,22 +452,25 @@ const registerRREvents = ({ socket, redisHelpers }) => {
try {
const vehQ = makeVehicleSearchPayloadFromJob(job);
if (vehQ && vehQ.kind === "vin" && job?.v_vin) {
const resVin = await rrCombinedSearch(bodyshop, vehQ);
const blocksVin = Array.isArray(resVin?.data) ? resVin.data : Array.isArray(resVin) ? resVin : [];
const vinResponse = await rrCombinedSearch(bodyshop, vehQ);
CreateRRLogEvent(socket, "SILLY", `VIN owner pre-check response`, { response: vinResponse });
const vinBlocks = Array.isArray(vinResponse?.data) ? vinResponse.data : [];
try {
await redisHelpers.setSessionTransactionData(
socket.id,
ns,
RRCacheEnums.VINCandidates,
blocksVin,
vinBlocks,
defaultRRTTL
);
} catch {
//
}
const ownersSet = ownersFromVinBlocks(blocksVin, job.v_vin);
const ownersSet = ownersFromVinBlocks(vinBlocks, job.v_vin);
if (ownersSet?.size) {
const sel = String(selectedCustNo);