diff --git a/src/mixins/analytics-mixin.js b/src/mixins/analytics-mixin.js index b4e2c786c..b7bc8ab31 100644 --- a/src/mixins/analytics-mixin.js +++ b/src/mixins/analytics-mixin.js @@ -121,6 +121,9 @@ export default { }, pushOrderToDataLayer() { + // helper check for if an object is defined (but maybe falsey) + const isDefined = (x) => x !== null && x !== undefined; + // Get correct order object const hasSubmittedOrder = store.getters.hasSubmittedOrder; const order = hasSubmittedOrder ? store.getters.submittedOrder : store.getters.order; @@ -131,13 +134,13 @@ export default { // Service Zip if ( order.serviceLocation.appointmentType === AppointmentTypeStrings.MOBILE && - order.serviceLocation.zipCode + isDefined(order.serviceLocation.zipCode) ) { payload.serviceZipCode = order.serviceLocation.zipCode; } else if ( - order.serviceLocation.appointmentType && + isDefined(order.serviceLocation.appointmentType) && order.serviceLocation.appointmentType !== AppointmentTypeStrings.MOBILE && - order.serviceLocation.provider.address.zipCode + isDefined(order.serviceLocation.provider.address.zipCode) ) { payload.serviceZipCode = order.serviceLocation.provider.address.zipCode; } else { @@ -145,14 +148,14 @@ export default { } // Damage Type - if (order.damage.isRepair !== null && order.damage.isRepair !== undefined) { + if (isDefined(order.damage.isRepair)) { payload.damageType = order.damage.isRepair ? "repair" : "replace"; } else { payload.damageType = ""; } // Account Type - if (order.payment.isInsurance !== null && order.payment.isInsurance !== undefined) { + if (isDefined(order.payment.isInsurance)) { payload.accountType = order.payment.isInsurance ? "insurance" : "cash"; } else { payload.accountType = ""; @@ -169,26 +172,26 @@ export default { } // Vehicle info - if (order.vehicle.year !== null && order.vehicle.year !== undefined) { + if (isDefined(order.vehicle.year)) { // Ensure cast to string. payload.vehicleYear = `${order.vehicle.year}`; } else { payload.vehicleYear = ""; } - if (order.vehicle.make) { + if (isDefined(order.vehicle.make)) { payload.vehicleMake = order.vehicle.make; } else { payload.vehicleMake = ""; } - if (order.vehicle.model) { + if (isDefined(order.vehicle.model)) { payload.vehicleModel = order.vehicle.model; } else { payload.vehicleModel = ""; } - if (order.vehicle.style) { + if (isDefined(order.vehicle.style)) { payload.vehicleStyle = order.vehicle.style; } else { payload.vehicleStyle = ""; @@ -206,21 +209,21 @@ export default { } // Work Order Id - if (order.workOrderId) { + if (isDefined(order.workOrderId)) { payload.workOrderId = parseInt(order.workOrderId); } else { payload.workOrderId = ""; } // Provider Ctu - if (order.serviceLocation.zipCodeCtu) { + if (isDefined(order.serviceLocation.zipCodeCtu)) { payload.providerCtu = parseInt(order.serviceLocation.zipCodeCtu); } else { payload.providerCtu = ""; } // Work Order Number - if (order.workOrderNumber) { + if (isDefined(order.workOrderNumber)) { payload.orderNumber = order.workOrderNumber; } else { payload.orderNumber = ""; @@ -260,7 +263,7 @@ export default { } // Appointment Type - if (order.serviceLocation.appointmentType) { + if (isDefined(order.serviceLocation.appointmentType)) { payload.appointmentType = order.serviceLocation.appointmentType; } else { payload.appointmentType = "";