IO-233 Export Job Refactor

This commit is contained in:
Patrick Fic
2021-08-23 19:02:05 -07:00
parent 3ca6791939
commit 6c12e5cb03
4 changed files with 371 additions and 297 deletions

View File

@@ -7,6 +7,7 @@ import { useTranslation } from "react-i18next";
import { useLazyQuery } from "@apollo/client"; import { useLazyQuery } from "@apollo/client";
import { SEARCH_DMS_VEHICLES } from "../../graphql/dms.queries"; import { SEARCH_DMS_VEHICLES } from "../../graphql/dms.queries";
import AlertComponent from "../alert/alert.component"; import AlertComponent from "../alert/alert.component";
const mapStateToProps = createStructuredSelector({ const mapStateToProps = createStructuredSelector({
//currentUser: selectCurrentUser //currentUser: selectCurrentUser
bodyshop: selectBodyshop, bodyshop: selectBodyshop,

View File

@@ -277,6 +277,15 @@ export function DmsPostForm({ bodyshop, socket, job }) {
<Button disabled={discrep.getAmount() !== 0} htmlType="submit"> <Button disabled={discrep.getAmount() !== 0} htmlType="submit">
{t("jobs.actions.dms.post")} {t("jobs.actions.dms.post")}
</Button> </Button>
<Button
onClick={() => {
socket.emit(`${determineDmsType(bodyshop)}-export-job`, {
jobid: job.id,
});
}}
>
Bypass
</Button>
</Space> </Space>
); );
}} }}

View File

@@ -13,7 +13,7 @@ const CdkWsdl = require("./cdk-wsdl").default;
const logger = require("../utils/logger"); const logger = require("../utils/logger");
const { CDK_CREDENTIALS, CheckCdkResponseForError } = require("./cdk-wsdl"); const { CDK_CREDENTIALS, CheckCdkResponseForError } = require("./cdk-wsdl");
exports.default = async function (socket, jobid) { exports.default = async function (socket, { jobid }) {
socket.logEvents = []; socket.logEvents = [];
socket.recordid = jobid; socket.recordid = jobid;
try { try {
@@ -22,8 +22,7 @@ exports.default = async function (socket, jobid) {
"DEBUG", "DEBUG",
`Received Job export request for id ${jobid}` `Received Job export request for id ${jobid}`
); );
//The following values will be stored on the socket to allow callbacks.
//let DMSVid, DMSVeh, clADPC;
const JobData = await QueryJobData(socket, jobid); const JobData = await QueryJobData(socket, jobid);
const DealerId = JobData.bodyshop.cdk_dealerid; const DealerId = JobData.bodyshop.cdk_dealerid;
CdkBase.createLogEvent( CdkBase.createLogEvent(
@@ -32,135 +31,49 @@ exports.default = async function (socket, jobid) {
`Dealer ID detected: ${JSON.stringify(DealerId)}` `Dealer ID detected: ${JSON.stringify(DealerId)}`
); );
//{1} Begin Calculate DMS Vehicle Id CdkBase.createLogEvent(
socket,
"TRACE",
`{1} Begin Calculate DMS Vehicle ID using VIN: ${JobData.v_vin}`
);
socket.DMSVid = await CalculateDmsVid(socket, JobData); socket.DMSVid = await CalculateDmsVid(socket, JobData);
if (socket.DMSVid.newId === "Y") {
//{1.2} This is a new Vehicle ID if (socket.DMSVid.newId === "N") {
CdkBase.createLogEvent(
socket,
"DEBUG",
`{1.2} DMSVid DMSVid does *not* exist.`
);
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"TRACE", "TRACE",
`{1.2} DMSVid: ${JSON.stringify(socket.DMSVid, null, 2)}` `{2.1} Querying the Vehicle using the DMSVid: ${socket.DmsVid}`
);
//Check if DMSCustId is Empty - which it should always be?
//{6.6} Should check to see if a customer exists so that we can marry it to the new vehicle.
CdkBase.createLogEvent(
socket,
"DEBUG",
`{6.6} Trying to find customer ID in DMS.`
); );
socket.DMSVeh = await QueryDmsVehicleById(socket, JobData, socket.DMSVid);
//Array const DmsVehCustomerId =
const strIDS = await QueryDmsCustomerByName(socket, JobData); socket.DMSVeh &&
if (strIDS && strIDS.length > 0) { socket.DMSVeh.owners.find((o) => o.assigningPartyId === "CURRENT");
CdkBase.createLogEvent(
socket,
"DEBUG",
`{8.2} ${strIDS.length} Customer ID(s) found.`
);
CdkBase.createLogEvent(
socket,
"TRACE",
`{8.2} strIDS: ${JSON.stringify(strIDS, null, 2)}`
);
if (strIDS.length > 1) {
//We have multiple IDs
//TODO: Do we need to let the person select it?
CdkBase.createLogEvent(
socket,
"WARNING",
`{F} Mutliple customer ids have been found (${strIDS.length})`
);
CdkBase.createLogEvent(
socket,
"DEBUG",
`Asking for user intervention to select customer.`
);
socket.emit("cdk-select-customer", strIDS);
return;
}
} else {
CdkBase.createLogEvent(
socket,
"DEBUG",
`{8.5} Customer ID(s) *not* found.`
);
//Create a customer number, then use that to insert the customer record.
const newCustomerNumber = await GenerateCustomerNumberFromDms(
socket,
JobData
);
CdkBase.createLogEvent(
socket,
"DEBUG",
`{10.1} New Customer number generated. newCustomerNumber: ${newCustomerNumber}`
);
//Use the new customer number to insert the customer record.
socket.clADPC = await CreateCustomerInDms(
socket,
JobData,
newCustomerNumber
);
CdkBase.createLogEvent(
socket,
"DEBUG",
`{11.1} New Customer inserted.`
);
CdkBase.createLogEvent(
socket,
"TRACE",
`{11.1} clADPC: ${JSON.stringify(socket.clADPC, null, 2)}`
);
}
} else {
CdkBase.createLogEvent(
socket,
"DEBUG",
`{1.1} DMSVid DMSVid does exist.`
);
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"TRACE", "TRACE",
`{1.1} DMSVid: ${JSON.stringify(socket.DMSVid, null, 2)}` `{2.2} Querying the Customer using the ID from DMSVeh: ${DmsVehCustomerId}`
);
socket.DmsVehCustomer = await QueryDmsCustomerById(
socket,
JobData,
DmsVehCustomerId
); );
//{2} Begin Find Vehicle in DMS
socket.DMSVeh = await QueryDmsVehicleById(socket, JobData, socket.DMSVid); //TODO: Verify that this should always return a result. If an ID was found previously, it should be correct?
//{2.2} Check if the vehicle was found in the DMS.
if (socket.DMSVeh.AppErrorNo === "0") {
//Vehicle was found.
CdkBase.createLogEvent(
socket,
"DEBUG",
`{1.4} Vehicle was found in the DMS.`
);
CdkBase.createLogEvent(
socket,
"TRACE",
`{1.4} DMSVeh: ${JSON.stringify(socket.DMSVeh, null, 2)}`
);
} else {
//Vehicle was not found.
CdkBase.createLogEvent(
socket,
"DEBUG",
`{6.4} Vehicle does not exist in DMS. Will have to create one.`
);
CdkBase.createLogEvent(
socket,
"TRACE",
`{6.4} DMSVid: ${JSON.stringify(socket.DMSVid, null, 2)}`
);
}
} }
CdkBase.createLogEvent(
socket,
"TRACE",
`{2.3} Querying the Customer using the name.`
);
socket.DmsCustList = await QueryDmsCustomerByName(socket, JobData);
socket.emit("cdk-select-customer", [
...(socket.DmsVehCustomer ? socket.DmsVehCustomer : []),
...socket.DmsCustList,
]);
} catch (error) { } catch (error) {
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
@@ -192,122 +105,196 @@ async function QueryJobData(socket, jobid) {
return result.jobs_by_pk; return result.jobs_by_pk;
} }
async function CreateCustomerInDms(socket, JobData, newCustomerNumber) { async function CalculateDmsVid(socket, JobData) {
CdkBase.createLogEvent(socket, "DEBUG", `{11} Begin Create Customer in DMS`);
try { try {
const soapClientCustomerInsertUpdate = await soap.createClientAsync( const soapClientVehicleInsertUpdate = await soap.createClientAsync(
CdkWsdl.CustomerInsertUpdate CdkWsdl.VehicleInsertUpdate
);
const soapResponseVehicleInsertUpdate =
await soapClientVehicleInsertUpdate.getVehIdsAsync({
arg0: CDK_CREDENTIALS,
arg1: { id: JobData.bodyshop.cdk_dealerid },
arg2: { VIN: JobData.v_vin },
});
CheckCdkResponseForError(socket, soapResponseVehicleInsertUpdate);
const [result, rawResponse, soapheader, rawRequest] =
soapResponseVehicleInsertUpdate;
CdkBase.createXmlEvent(
socket,
rawRequest,
`soapClientVehicleInsertUpdate.getVehIdsAsync reqest.`
); );
const soapResponseCustomerInsertUpdate =
await soapClientCustomerInsertUpdate.insertAsync(
{
arg0: CDK_CREDENTIALS,
arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards.
arg2: { userId: null },
arg3: {
//Copied the required fields from the other integration.
//TODO: Verify whether we need to bring more information in.
id: { value: newCustomerNumber },
address: {
city: JobData.ownr_city,
country: null,
postalcode: JobData.ownr_zip,
stateOrProvince: JobData.ownr_st,
},
contactInfo: {
mainTelephoneNumber: { main: true, value: JobData.ownr_ph1 },
},
demographics: null,
name1: {
companyname: null,
firstName: JobData.ownr_fn,
fullname: null,
lastName: JobData.ownr_ln,
middleName: null,
nameType: "Person",
suffix: null,
title: null,
},
},
},
{} CdkBase.createXmlEvent(
); socket,
CheckCdkResponseForError(socket, soapResponseCustomerInsertUpdate); rawResponse,
const [ `soapClientVehicleInsertUpdate.getVehIdsAsync response.`
result, //rawResponse, soapheader, rawRequest );
] = soapResponseCustomerInsertUpdate;
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"TRACE", "TRACE",
`soapClientCustomerInsertUpdate.insertAsync Result ${JSON.stringify( `soapClientVehicleInsertUpdate.getVehIdsAsync Result ${JSON.stringify(
result, result,
null, null,
2 2
)}` )}`
); );
const customer = result && result.return;
return customer; const DmsVid = result && result.return && result.return[0];
return DmsVid;
} catch (error) { } catch (error) {
CdkBase.createXmlEvent(
socket,
error.request,
`soapClientVehicleInsertUpdate.getVehIdsAsync reqest.`,
true
);
CdkBase.createXmlEvent(
socket,
error.response.data,
`soapClientVehicleInsertUpdate.getVehIdsAsync response.`,
true
);
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"ERROR", "ERROR",
`Error in CreateCustomerInDms - ${JSON.stringify(error, null, 2)}` `{1} Error in CalculateDmsVid - ${error}`
); );
throw new Error(error); throw new Error(error);
} }
} }
async function GenerateCustomerNumberFromDms(socket, JobData) { async function QueryDmsVehicleById(socket, JobData, DMSVid) {
CdkBase.createLogEvent(
socket,
"DEBUG",
`{10} Begin Generate Customer Number from DMS`
);
try { try {
const soapClientCustomerInsertUpdate = await soap.createClientAsync( const soapClientVehicleInsertUpdate = await soap.createClientAsync(
CdkWsdl.CustomerInsertUpdate CdkWsdl.VehicleInsertUpdate
); );
const soapResponseCustomerInsertUpdate =
await soapClientCustomerInsertUpdate.getCustomerNumberAsync( const soapResponseVehicleInsertUpdate =
await soapClientVehicleInsertUpdate.readAsync(
{ {
arg0: CDK_CREDENTIALS, arg0: CDK_CREDENTIALS,
arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards. arg1: { id: JobData.bodyshop.cdk_dealerid },
arg2: { userId: null }, arg2: {
fileType: "VEHICLES",
vehiclesVehicleId: DMSVid.vehiclesVehId,
},
}, },
{} function (err, result, rawResponse, soapHeader, rawRequest) {
CdkBase.createXmlEvent(
socket,
rawRequest,
`soapClientVehicleInsertUpdate.readAsync reqest.`,
!!err
);
CdkBase.createXmlEvent(
socket,
rawResponse,
`soapClientVehicleInsertUpdate.readAsync response.`,
!!err
);
}
); );
CheckCdkResponseForError(socket, soapResponseCustomerInsertUpdate); CheckCdkResponseForError(socket, soapResponseVehicleInsertUpdate);
const [ const [result, rawResponse, soapheader, rawRequest] =
result, //rawResponse, soapheader, rawRequest soapResponseVehicleInsertUpdate;
] = soapResponseCustomerInsertUpdate;
CdkBase.createXmlEvent(
socket,
rawRequest,
`soapClientVehicleInsertUpdate.readAsync reqest.`
);
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"TRACE", "TRACE",
`soapClientCustomerInsertUpdate.getCustomerNumberAsync Result ${JSON.stringify( `soapClientVehicleInsertUpdate.readAsync Result ${JSON.stringify(
result, result,
null, null,
2 2
)}` )}`
); );
const customerNumber = CdkBase.createXmlEvent(
result && result.return && result.return.customerNumber; socket,
return customerNumber; rawResponse,
`soapClientVehicleInsertUpdate.readAsync response.`
);
const VehicleFromDMS = result && result.return && result.return.vehicle;
return VehicleFromDMS;
} catch (error) { } catch (error) {
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"ERROR", "ERROR",
`Error in GenerateCustomerNumberFromDms - ${JSON.stringify( `Error in QueryDmsVehicleById - ${error}`
error, );
throw new Error(error);
}
}
async function QueryDmsCustomerById(socket, JobData, CustomerId) {
try {
const soapClientCustomerInsertUpdate = await soap.createClientAsync(
CdkWsdl.CustomerInsertUpdate
);
const soapResponseCustomerInsertUpdate =
await soapClientCustomerInsertUpdate.readAsync({
arg0: CDK_CREDENTIALS,
arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards.
arg2: {
userId: CustomerId,
},
});
CheckCdkResponseForError(socket, soapResponseCustomerInsertUpdate);
const [result, rawResponse, soapheader, rawRequest] =
soapResponseCustomerInsertUpdate;
CdkBase.createXmlEvent(
socket,
rawRequest,
`soapClientCustomerInsertUpdate.readAsync reqest.`
);
CdkBase.createXmlEvent(
socket,
rawResponse,
`soapClientCustomerInsertUpdate.readAsync response.`
);
CdkBase.createLogEvent(
socket,
"TRACE",
`soapClientCustomerInsertUpdate.readAsync Result ${JSON.stringify(
result,
null, null,
2 2
)}` )}`
); );
const CustomersFromDms =
result && result.return && result.return.customerParty;
return CustomersFromDms;
} catch (error) {
CdkBase.createXmlEvent(
socket,
error.request,
`soapClientCustomerInsertUpdate.readAsync reqest.`,
true
);
CdkBase.createXmlEvent(
socket,
error.response.data,
`soapClientCustomerInsertUpdate.readAsync response.`,
true
);
CdkBase.createLogEvent(
socket,
"ERROR",
`Error in QueryDmsCustomerById - ${error}`
);
throw new Error(error); throw new Error(error);
} }
} }
@@ -317,7 +304,7 @@ async function QueryDmsCustomerByName(socket, JobData) {
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"DEBUG", "DEBUG",
`{8} Begin Read Customer from DMS using OWNER NAME: ${ownerName}` `Begin Query DMS Customer by Name using: ${ownerName}`
); );
try { try {
@@ -325,22 +312,30 @@ async function QueryDmsCustomerByName(socket, JobData) {
CdkWsdl.CustomerSearch CdkWsdl.CustomerSearch
); );
const soapResponseCustomerSearch = const soapResponseCustomerSearch =
await soapClientCustomerSearch.executeSearchAsync( await soapClientCustomerSearch.executeSearchAsync({
{ arg0: CDK_CREDENTIALS,
arg0: CDK_CREDENTIALS, arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards.
arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards. arg2: {
arg2: { verb: "EXACT",
verb: "EXACT", key: ownerName,
key: ownerName,
},
}, },
});
{}
);
CheckCdkResponseForError(socket, soapResponseCustomerSearch); CheckCdkResponseForError(socket, soapResponseCustomerSearch);
const [ const [result, rawResponse, soapheader, rawRequest] =
result, // rawResponse, soapheader, rawRequest soapResponseCustomerSearch;
] = soapResponseCustomerSearch;
CdkBase.createXmlEvent(
socket,
rawRequest,
`soapClientCustomerSearch.executeSearchBulkAsync reqest.`
);
CdkBase.createXmlEvent(
socket,
rawResponse,
`soapClientCustomerSearch.executeSearchBulkAsync response.`
);
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"TRACE", "TRACE",
@@ -350,110 +345,148 @@ async function QueryDmsCustomerByName(socket, JobData) {
2 2
)}` )}`
); );
const CustomersFromDms = result && result.return; const CustomersFromDms = (result && result.return) || [];
return CustomersFromDms; return CustomersFromDms;
} catch (error) { } catch (error) {
CdkBase.createXmlEvent(
socket,
error.request,
`soapClientCustomerSearch.executeSearchBulkAsync reqest.`,
true
);
CdkBase.createXmlEvent(
socket,
error.response.data,
`soapClientCustomerSearch.executeSearchBulkAsync response.`,
true
);
CdkBase.createLogEvent( CdkBase.createLogEvent(
socket, socket,
"ERROR", "ERROR",
`Error in QueryDmsCustomerByName - ${JSON.stringify(error, null, 2)}` `Error in QueryDmsCustomerByName - ${error}`
); );
throw new Error(error); throw new Error(error);
} }
} }
async function QueryDmsVehicleById(socket, JobData, DMSVid) { // async function CreateCustomerInDms(socket, JobData, newCustomerNumber) {
CdkBase.createLogEvent( // CdkBase.createLogEvent(socket, "DEBUG", `{11} Begin Create Customer in DMS`);
socket,
"DEBUG",
`{2}/{6} Begin Find Vehicle In DMS using DMSVid: ${DMSVid}`
);
try { // try {
const soapClientVehicleInsertUpdate = await soap.createClientAsync( // const soapClientCustomerInsertUpdate = await soap.createClientAsync(
CdkWsdl.VehicleInsertUpdate // CdkWsdl.CustomerInsertUpdate
); // );
// const soapResponseCustomerInsertUpdate =
// await soapClientCustomerInsertUpdate.insertAsync(
// {
// arg0: CDK_CREDENTIALS,
// arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards.
// arg2: { userId: null },
// arg3: {
// //Copied the required fields from the other integration.
// //TODO: Verify whether we need to bring more information in.
// id: { value: newCustomerNumber },
// address: {
// city: JobData.ownr_city,
// country: null,
// postalcode: JobData.ownr_zip,
// stateOrProvince: JobData.ownr_st,
// },
// contactInfo: {
// mainTelephoneNumber: { main: true, value: JobData.ownr_ph1 },
// },
// demographics: null,
// name1: {
// companyname: null,
// firstName: JobData.ownr_fn,
// fullname: null,
// lastName: JobData.ownr_ln,
// middleName: null,
// nameType: "Person",
// suffix: null,
// title: null,
// },
// },
// },
const soapResponseVehicleInsertUpdate = // {}
await soapClientVehicleInsertUpdate.readBulkAsync( // );
{ // CheckCdkResponseForError(socket, soapResponseCustomerInsertUpdate);
arg0: CDK_CREDENTIALS, // const [
arg1: { id: JobData.bodyshop.cdk_dealerid }, // result, //rawResponse, soapheader, rawRequest
arg2: { // ] = soapResponseCustomerInsertUpdate;
fileType: "VEHICLES",
vehiclesVehicleId: DMSVid.vehiclesVehId,
},
},
{} // CdkBase.createLogEvent(
); // socket,
CheckCdkResponseForError(socket, soapResponseVehicleInsertUpdate); // "TRACE",
const [ // `soapClientCustomerInsertUpdate.insertAsync Result ${JSON.stringify(
result, //rawResponse, soapheader, rawRequest // result,
] = soapResponseVehicleInsertUpdate; // null,
CdkBase.createLogEvent( // 2
socket, // )}`
"TRACE", // );
`soapClientVehicleInsertUpdate.readBulkAsync Result ${JSON.stringify( // const customer = result && result.return;
result, // return customer;
null, // } catch (error) {
2 // CdkBase.createLogEvent(
)}` // socket,
); // "ERROR",
const VehicleFromDMS = result && result.return && result.return[0]; // `Error in CreateCustomerInDms - ${error}`
return VehicleFromDMS; // );
} catch (error) { // throw new Error(error);
CdkBase.createLogEvent( // }
socket, // }
"ERROR",
`Error in QueryDmsVehicleById - ${JSON.stringify(error, null, 2)}`
);
throw new Error(error);
}
}
async function CalculateDmsVid(socket, JobData) { // async function GenerateCustomerNumberFromDms(socket, JobData) {
CdkBase.createLogEvent( // CdkBase.createLogEvent(
socket, // socket,
"TRACE", // "DEBUG",
`{1} Begin Calculate DMS Vehicle ID using VIN: ${JobData.v_vin}` // `{10} Begin Generate Customer Number from DMS`
); // );
try { // try {
const soapClientVehicleInsertUpdate = await soap.createClientAsync( // const soapClientCustomerInsertUpdate = await soap.createClientAsync(
CdkWsdl.VehicleInsertUpdate // CdkWsdl.CustomerInsertUpdate
); // );
const soapResponseVehicleInsertUpdate = // const soapResponseCustomerInsertUpdate =
await soapClientVehicleInsertUpdate.getVehIdsAsync( // await soapClientCustomerInsertUpdate.getCustomerNumberAsync(
{ // {
arg0: CDK_CREDENTIALS, // arg0: CDK_CREDENTIALS,
arg1: { id: JobData.bodyshop.cdk_dealerid }, // arg1: { dealerId: JobData.bodyshop.cdk_dealerid }, //TODO: Verify why this does not follow the other standards.
arg2: { VIN: JobData.v_vin }, // arg2: { userId: null },
}, // },
{} // {}
); // );
CheckCdkResponseForError(socket, soapResponseVehicleInsertUpdate); // CheckCdkResponseForError(socket, soapResponseCustomerInsertUpdate);
const [ // const [
result, //rawResponse, soapheader, rawRequest // result, //rawResponse, soapheader, rawRequest
] = soapResponseVehicleInsertUpdate; // ] = soapResponseCustomerInsertUpdate;
CdkBase.createLogEvent(
socket, // CdkBase.createLogEvent(
"TRACE", // socket,
`soapClientVehicleInsertUpdate.searchIDsByVINAsync Result ${JSON.stringify( // "TRACE",
result, // `soapClientCustomerInsertUpdate.getCustomerNumberAsync Result ${JSON.stringify(
null, // result,
2 // null,
)}` // 2
); // )}`
const DmsVehicle = result && result.return && result.return[0]; // );
return DmsVehicle; // const customerNumber =
} catch (error) { // result && result.return && result.return.customerNumber;
CdkBase.createLogEvent( // return customerNumber;
socket, // } catch (error) {
"ERROR", // CdkBase.createLogEvent(
`Error in CalculateDmsVid - ${JSON.stringify(error, null, 2)}` // socket,
); // "ERROR",
throw new Error(error); // `Error in GenerateCustomerNumberFromDms - ${JSON.stringify(
} // error,
} // null,
// 2
// )}`
// );
// throw new Error(error);
// }
// }

View File

@@ -123,8 +123,38 @@ function createLogEvent(socket, level, message) {
} }
} }
function createXmlEvent(socket, xml, message, isError = false) {
socket.emit("log-event", {
timestamp: new Date(),
level: isError ? "ERROR" : "TRACE",
message: `${message}: ${xml}`,
});
logger.log(
isError ? "ws-log-event-xml-error" : "ws-log-event-xml",
isError ? "ERROR" : "TRACE",
socket.user.email,
socket.recordid,
{
wsmessage: message,
xml,
}
);
if (socket.logEvents && isArray(socket.logEvents)) {
socket.logEvents.push({
timestamp: new Date(),
level: isError ? "ERROR" : "TRACE",
message,
xml,
});
}
}
function LogLevelHierarchy(level) { function LogLevelHierarchy(level) {
switch (level) { switch (level) {
case "XML":
return 5;
case "TRACE": case "TRACE":
return 5; return 5;
case "DEBUG": case "DEBUG":
@@ -141,3 +171,4 @@ function LogLevelHierarchy(level) {
} }
exports.createLogEvent = createLogEvent; exports.createLogEvent = createLogEvent;
exports.createXmlEvent = createXmlEvent;