const express = require("express"); const router = express.Router(); // Pull secrets from env const { VSSTA_INTEGRATION_SECRET, PARTS_MANAGEMENT_INTEGRATION_SECRET } = process.env; // Only load VSSTA routes if the secret is set if (typeof VSSTA_INTEGRATION_SECRET === "string" && VSSTA_INTEGRATION_SECRET.length > 0) { const vsstaIntegration = require("../integrations/VSSTA/vsstaIntegrationRoute"); const vsstaMiddleware = require("../middleware/vsstaIntegrationMiddleware"); router.post("/vssta", vsstaMiddleware, vsstaIntegration); } else { console.warn("VSSTA_INTEGRATION_SECRET is not set — skipping /vssta integration route"); } // Only load Parts Management routes if that secret is set if (typeof PARTS_MANAGEMENT_INTEGRATION_SECRET === "string" && PARTS_MANAGEMENT_INTEGRATION_SECRET.length > 0) { const XML_BODY_LIMIT = "10mb"; // Set a limit for XML body size const partsManagementProvisioning = require("../integrations/partsManagement/endpoints/partsManagementProvisioning"); const partsManagementDeprovisioning = require("../integrations/partsManagement/endpoints/partsManagementDeprovisioning"); const partsManagementIntegrationMiddleware = require("../middleware/partsManagementIntegrationMiddleware"); const partsManagementVehicleDamageEstimateAddRq = require("../integrations/partsManagement/endpoints/vehicleDamageEstimateAddRq"); const partsManagementVehicleDamageEstimateChqRq = require("../integrations/partsManagement/endpoints/vehicleDamageEstimateChgRq"); /** * Route to handle Vehicle Damage Estimate Add Request */ router.post( "/parts-management/VehicleDamageEstimateAddRq", express.raw({ type: "application/xml", limit: XML_BODY_LIMIT }), // Parse XML body partsManagementIntegrationMiddleware, partsManagementVehicleDamageEstimateAddRq ); /** * Route to handle Vehicle Damage Estimate Change Request */ router.post( "/parts-management/VehicleDamageEstimateChqRq", express.raw({ type: "application/xml", limit: XML_BODY_LIMIT }), // Parse XML body partsManagementIntegrationMiddleware, partsManagementVehicleDamageEstimateChqRq ); // Deprovisioning route router.post("/parts-management/deprovision", partsManagementIntegrationMiddleware, partsManagementDeprovisioning); /** * Route to handle Parts Management Provisioning */ router.post("/parts-management/provision", partsManagementIntegrationMiddleware, partsManagementProvisioning); } else { console.warn("PARTS_MANAGEMENT_INTEGRATION_SECRET is not set — skipping /parts-management/provision route"); } module.exports = router;