const path = require("path"); require("dotenv").config({ path: path.resolve(process.cwd(), `.env.${process.env.NODE_ENV || "development"}`) }); 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 { //Query all CDK Models const newList = await GetCdkMakes(req, cdk_dealerid); const BearerToken = req.BearerToken; const client = req.userGraphQLClient; const deleteResult = await client .setHeaders({ Authorization: BearerToken }) .request(queries.DELETE_ALL_DMS_VEHICLES, {}); // logger.logger.debug("🚀 ~ 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); } }