import bailoutCode from '@/constants/bailoutCode'; function getItemData(data) { if (data === undefined || data == null) { return 'null'; } if (typeof data === 'string') { return data; } return JSON.stringify(data); } const bailoutMessage = Object.freeze({ unknown: (error) => ({ code: bailoutCode.Unknown, message: `An unknown bailout occurred: ${getItemData(error)}` }), saveSessionError: (error) => ({ code: bailoutCode.SaveSessionError, message: `An error occurred during save session: ${getItemData(error)}` }), vehicleNotFound: (vin) => ({ code: bailoutCode.VehicleNotFound, message: `Failed to find vehicle in system with vin: ${vin}` }), vehicleLookupError: (vin, error) => ({ code: bailoutCode.VehicleLookupError, message: `An error occurred looking up Vin: ${vin}. Error: ${getItemData(error)}` }), coverageStatementInvalidState: () => ({ code: bailoutCode.CoverageStatementInvalidState, message: 'Coverage Statement has entered an invalid state' }), doNotSeeMyShop: () => ({ code: bailoutCode.DoNotSeeMyShop, message: 'User does not see their shop.' }), pricingResponseError: (lineItems, error) => ({ code: bailoutCode.PricingResponseError, message: `An error occurred in getPriceOrderItems. Line Items: ${getItemData(lineItems)} Error: ${getItemData(error)}` }), TPANotEnabled: () => ({ code: bailoutCode.TPANotEnabled, message: 'User selected TPA when TPA is not enabled for this client' }), RequestCallback: () => ({ code: bailoutCode.RequestCallback, message: 'User selected option to receive callback from Safelite' }) }); export default bailoutMessage;