CSR-1104 | Query string parameter builder function

Also integrated into the GetServiceabilityDetails call
This commit is contained in:
Scott Kiener 2023-04-20 10:14:04 -04:00
parent f008d2238f
commit 35a941ab6b

View file

@ -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);
}