From 3d38826ad24bd612f580d3361f4304e18b472569 Mon Sep 17 00:00:00 2001 From: Katie Kroell Date: Fri, 19 May 2023 14:56:05 -0400 Subject: [PATCH] update to payload for serviceability details call --- src/store/index.js | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index ed1d1a68..1ef28968 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -553,13 +553,30 @@ export const useMainStore = defineStore({ return availableLineItems; }, - getServiceabilityDetails({ serviceZipCode }) { - const lineItemsToSend = this.order.lineItems.supportingItems; - const encodedLineItems = encodeURIComponent(JSON.stringify(lineItemsToSend)); + const lineItemsWithOnlyPartNumbers = this.order.lineItems.glassParts.map( + (glassPart) => ({ + partNumber: glassPart.partNumber, + }) + ); + const lineItems = buildQueryStringParameterFromArrayOfComplexObjects( + lineItemsWithOnlyPartNumbers, + "lineItems" + ); + + const vehicle = this.order.vehicle; + const carId = vehicle.carId; + const damage = this.order.damage; + const glassArray = convertGlassPieceNamingForApi(damage.glassToReplace); + + const glassPieces = buildQueryStringParameterFromArrayOfComplexObjects( + glassArray, + "glassPieces" + ); + return globalMethods.callHttpClient({ method: endpoints.GetServiceabilityDetails.method, - endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&lineItems=${encodedLineItems}` + endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&carId=${carId}&${lineItems}&${glassPieces}`, }); }, @@ -1380,3 +1397,14 @@ function getLineItemQueryStringForPricing(lineItems){ }).join(''); } +function buildQueryStringParameterFromArrayOfComplexObjects(arrayOfObjects, parameterName) { + let queryStringParameter = ""; + for (let i = 0; i < arrayOfObjects.length; i++) { + for (const [key, value] of Object.entries(arrayOfObjects[i])) { + queryStringParameter += `${parameterName}[${i}].${key}=${value}&`; + } + } + // Remove trailing & + return queryStringParameter.slice(0, -1); +} +