feature/IO-3357-Reynolds-and-Reynolds-DMS-API-Integration / Merges and adjustments
This commit is contained in:
@@ -3,7 +3,7 @@ const { buildClientAndOpts } = require("./rr-lookup");
|
||||
const CreateRRLogEvent = require("./rr-logger-event");
|
||||
const { extractRrResponsibilityCenters } = require("./rr-responsibility-centers");
|
||||
const CdkCalculateAllocations = require("./rr-calculate-allocations").default;
|
||||
|
||||
const { resolveRROpCodeFromBodyshop } = require("./rr-utils");
|
||||
/**
|
||||
* Derive RR status information from response object.
|
||||
* @param rrRes
|
||||
@@ -137,19 +137,17 @@ const exportJobToRR = async (args) => {
|
||||
allocations = [];
|
||||
}
|
||||
|
||||
// 3) OpCode (global, but overridable)
|
||||
// - baseOpCode can come from bodyshop or rrCentersConfig (you'll map it in onboarding)
|
||||
// - txEnvelope can carry an explicit override field (opCode/opcode/op_code)
|
||||
const baseOpCode = bodyshop?.rr_configuration?.baseOpCode || "28TOZ"; // TODO Change / implement default handling policy
|
||||
const resolvedBaseOpCode = resolveRROpCodeFromBodyshop(bodyshop);
|
||||
|
||||
const opCodeOverride = txEnvelope?.opCode || txEnvelope?.opcode || txEnvelope?.op_code || null;
|
||||
|
||||
if (opCodeOverride || baseOpCode) {
|
||||
opCode = String(opCodeOverride || baseOpCode).trim() || null;
|
||||
if (opCodeOverride || resolvedBaseOpCode) {
|
||||
opCode = String(opCodeOverride || resolvedBaseOpCode).trim() || null;
|
||||
}
|
||||
|
||||
CreateRRLogEvent(socket, "SILLY", "RR OP config resolved", {
|
||||
opCode
|
||||
opCode,
|
||||
baseFromConfig: resolvedBaseOpCode
|
||||
});
|
||||
|
||||
// Build RO payload for create.
|
||||
|
||||
@@ -16,6 +16,7 @@ const {
|
||||
defaultRRTTL,
|
||||
RRCacheEnums
|
||||
} = require("./rr-utils");
|
||||
const { resolveRROpCodeFromBodyshop } = require("./rr-utils");
|
||||
const { GraphQLClient } = require("graphql-request");
|
||||
const queries = require("../graphql-client/queries");
|
||||
|
||||
@@ -924,13 +925,17 @@ const registerRREvents = ({ socket, redisHelpers }) => {
|
||||
jobAllocations = Array.isArray(ack.jobAllocations) ? ack.jobAllocations : [];
|
||||
}
|
||||
|
||||
// Try to derive OpCode from bodyshop; fall back to default
|
||||
let opCode = "28TOZ";
|
||||
// Try to derive OpCode from bodyshop.rr_configuration.defaults; fall back to default
|
||||
let opCode;
|
||||
|
||||
try {
|
||||
const { bodyshopId } = await getSessionOrSocket(redisHelpers, socket);
|
||||
const bodyshop = await getBodyshopForSocket({ bodyshopId, socket });
|
||||
opCode = bodyshop?.rr_configuration?.baseOpCode || opCode;
|
||||
opCode = resolveRROpCodeFromBodyshop(bodyshop, opCode);
|
||||
|
||||
CreateRRLogEvent(socket, "DEBUG", "rr-calculate-allocations: resolved OpCode", {
|
||||
opCode
|
||||
});
|
||||
} catch (e) {
|
||||
CreateRRLogEvent(socket, "WARN", "rr-calculate-allocations: bodyshop lookup failed, using default OpCode", {
|
||||
error: e.message
|
||||
|
||||
@@ -182,6 +182,29 @@ const getTransactionType = (jobid) => `rr:${jobid}`;
|
||||
*/
|
||||
const defaultRRTTL = 60 * 60;
|
||||
|
||||
/**
|
||||
* Resolve RR OpCode from bodyshop.rr_configuration.defaults
|
||||
* Is Duplicated on client/src/utils/dmsUtils.js
|
||||
* @param bodyshop
|
||||
* @returns {string}
|
||||
*/
|
||||
const resolveRROpCodeFromBodyshop = (bodyshop) => {
|
||||
if (!bodyshop) throw new Error("bodyshop is required");
|
||||
|
||||
const cfg = bodyshop?.rr_configuration || {};
|
||||
const defaults = cfg?.defaults || {};
|
||||
|
||||
const prefix = (defaults.prefix ?? "").toString().trim();
|
||||
const base = (defaults.base ?? "").toString().trim();
|
||||
const suffix = (defaults.suffix ?? "").toString().trim();
|
||||
|
||||
if (!prefix && !base && !suffix) {
|
||||
throw new Error("No RR OpCode parts found in bodyshop configuration");
|
||||
}
|
||||
|
||||
return `${prefix}${base}${suffix}`;
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
RRCacheEnums,
|
||||
defaultRRTTL,
|
||||
@@ -189,5 +212,6 @@ module.exports = {
|
||||
ownersFromVinBlocks,
|
||||
makeVehicleSearchPayloadFromJob,
|
||||
normalizeCustomerCandidates,
|
||||
readAdvisorNo
|
||||
readAdvisorNo,
|
||||
resolveRROpCodeFromBodyshop
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user