From 35a941ab6b99eef8461b590069d22d447f7c19b9 Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Thu, 20 Apr 2023 10:14:04 -0400 Subject: [PATCH 1/3] CSR-1104 | Query string parameter builder function Also integrated into the GetServiceabilityDetails call --- src/store/index.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 97000380e..2cf7a0d2e 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -938,12 +938,16 @@ export const actions = { }, getServiceabilityDetails(context, { serviceZipCode }) { - const lineItems = context.getters.order.lineItems; - const lineItemsToSend = [...lineItems.supportingItems]; - const encodedLineItems = encodeURIComponent(JSON.stringify(lineItemsToSend)); + const lineItems = context.getters.order.lineItems.supportingItems.map((lineItem) => ({ + partNumber: lineItem.partNumber, + })); + const lineItemsToSend = buildQueryStringParameterFromArrayOfComplexObjects( + lineItems, + "lineItems" + ); return globalMethods.callHttpClient({ method: endpoints.GetServiceabilityDetails.method, - endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&lineItems=${encodedLineItems}`, + endpoint: `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&${lineItemsToSend}`, }); }, @@ -1674,3 +1678,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); +} From 1754fd4d77c177e8463389c3dd9aac07d44c6aad Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Thu, 20 Apr 2023 10:15:52 -0400 Subject: [PATCH 2/3] CSR-1104 | Refactoring naming --- src/store/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 2cf7a0d2e..ae6db2899 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -938,11 +938,11 @@ export const actions = { }, getServiceabilityDetails(context, { serviceZipCode }) { - const lineItems = context.getters.order.lineItems.supportingItems.map((lineItem) => ({ + const lineItemsWithOnlyPartNumbers = context.getters.order.lineItems.supportingItems.map((lineItem) => ({ partNumber: lineItem.partNumber, })); const lineItemsToSend = buildQueryStringParameterFromArrayOfComplexObjects( - lineItems, + lineItemsWithOnlyPartNumbers, "lineItems" ); return globalMethods.callHttpClient({ From 3f6d4a151c855fef6a7cbbcac880000bc77e2086 Mon Sep 17 00:00:00 2001 From: Scott Kiener Date: Thu, 20 Apr 2023 10:22:27 -0400 Subject: [PATCH 3/3] CSR-1104 | Formatting --- src/store/index.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index ae6db2899..abfd830db 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -938,9 +938,11 @@ export const actions = { }, getServiceabilityDetails(context, { serviceZipCode }) { - const lineItemsWithOnlyPartNumbers = context.getters.order.lineItems.supportingItems.map((lineItem) => ({ - partNumber: lineItem.partNumber, - })); + const lineItemsWithOnlyPartNumbers = context.getters.order.lineItems.supportingItems.map( + (lineItem) => ({ + partNumber: lineItem.partNumber, + }) + ); const lineItemsToSend = buildQueryStringParameterFromArrayOfComplexObjects( lineItemsWithOnlyPartNumbers, "lineItems"