158 lines
3.6 KiB
JavaScript
158 lines
3.6 KiB
JavaScript
const path = require("path");
|
|
require("dotenv").config({
|
|
path: path.resolve(
|
|
process.cwd(),
|
|
`.env.${process.env.NODE_ENV || "development"}`
|
|
),
|
|
});
|
|
const GraphQLClient = require("graphql-request").GraphQLClient;
|
|
const soap = require("soap");
|
|
const queries = require("../graphql-client/queries");
|
|
|
|
const CdkWsdl = require("./cdk-wsdl").default;
|
|
const logger = require("../utils/logger");
|
|
|
|
const { CDK_CREDENTIALS, CheckCdkResponseForError } = require("./cdk-wsdl");
|
|
|
|
// exports.default = async function (socket, cdk_dealerid) {
|
|
// try {
|
|
// CdkBase.createLogEvent(
|
|
// socket,
|
|
// "DEBUG",
|
|
// `Getting makes and models list from CDK.`
|
|
// );
|
|
// return await GetCdkMakes(socket, cdk_dealerid);
|
|
// } catch (error) {
|
|
// CdkBase.createLogEvent(
|
|
// socket,
|
|
// "ERROR",
|
|
// `Error encountered in CdkGetMakes. ${error}`
|
|
// );
|
|
// }
|
|
// };
|
|
|
|
exports.default = async function ReloadCdkMakes(req, res) {
|
|
const { bodyshopid, cdk_dealerid } = req.body;
|
|
try {
|
|
const BearerToken = req.headers.authorization;
|
|
//Query all CDK Models
|
|
const newList = await GetCdkMakes(req, cdk_dealerid);
|
|
|
|
//Clear out the existing records
|
|
const client = new GraphQLClient(process.env.GRAPHQL_ENDPOINT, {
|
|
headers: {
|
|
Authorization: BearerToken,
|
|
},
|
|
});
|
|
|
|
const deleteResult = await client
|
|
.setHeaders({ Authorization: BearerToken })
|
|
.request(queries.DELETE_ALL_DMS_VEHICLES, {});
|
|
console.log(
|
|
"🚀 ~ file: cdk-get-makes.js ~ line 53 ~ deleteResult",
|
|
deleteResult
|
|
);
|
|
|
|
//Insert the new ones.
|
|
|
|
const insertResult = await client
|
|
.setHeaders({ Authorization: BearerToken })
|
|
.request(queries.INSERT_DMS_VEHICLES, {
|
|
vehicles: newList.map((i) => {
|
|
return {
|
|
bodyshopid,
|
|
makecode: i.makeCode,
|
|
modelcode: i.modelCode,
|
|
make: i.makeFullName,
|
|
model: i.modelFullName,
|
|
};
|
|
}),
|
|
});
|
|
|
|
logger.log(
|
|
"cdk-replace-makes-models-success",
|
|
"DEBUG",
|
|
req.user.email,
|
|
null,
|
|
{
|
|
cdk_dealerid,
|
|
count: newList.length,
|
|
}
|
|
);
|
|
res.sendStatus(200);
|
|
} catch (error) {
|
|
logger.log(
|
|
"cdk-replace-makes-models-error",
|
|
"ERROR",
|
|
req.user.email,
|
|
null,
|
|
{
|
|
cdk_dealerid,
|
|
error,
|
|
}
|
|
);
|
|
res.status(500).json(error);
|
|
}
|
|
};
|
|
|
|
async function GetCdkMakes(req, cdk_dealerid) {
|
|
logger.log("cdk-replace-makes-models", "DEBUG", req.user.email, null, {
|
|
cdk_dealerid,
|
|
});
|
|
|
|
try {
|
|
const soapClientVehicleInsert = await soap.createClientAsync(
|
|
CdkWsdl.VehicleInsertUpdate
|
|
);
|
|
|
|
const soapResponseVehicleSearch =
|
|
await soapClientVehicleInsert.getMakeModelAsync(
|
|
{
|
|
arg0: CDK_CREDENTIALS,
|
|
arg1: { id: cdk_dealerid },
|
|
},
|
|
|
|
{}
|
|
);
|
|
|
|
CheckCdkResponseForError(null, soapResponseVehicleSearch);
|
|
const [result, rawResponse, , rawRequest] = soapResponseVehicleSearch;
|
|
logger.log(
|
|
"cdk-replace-makes-models-request",
|
|
"ERROR",
|
|
req.user.email,
|
|
null,
|
|
{
|
|
cdk_dealerid,
|
|
xml: rawRequest,
|
|
}
|
|
);
|
|
|
|
logger.log(
|
|
"cdk-replace-makes-models-response",
|
|
"ERROR",
|
|
req.user.email,
|
|
null,
|
|
{
|
|
cdk_dealerid,
|
|
xml: rawResponse,
|
|
}
|
|
);
|
|
|
|
return result.return;
|
|
} catch (error) {
|
|
logger.log(
|
|
"cdk-replace-makes-models-error",
|
|
"ERROR",
|
|
req.user.email,
|
|
null,
|
|
{
|
|
cdk_dealerid,
|
|
error,
|
|
}
|
|
);
|
|
|
|
throw new Error(error);
|
|
}
|
|
}
|