30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
import { getLineItemsFlattened } from '@/helpers/line-items-helper';
|
|
|
|
export default function getQueryStringParameter(key) {
|
|
const queryString = window.location.search;
|
|
const urlParams = new URLSearchParams(queryString);
|
|
const lowerCaseParams = new URLSearchParams();
|
|
|
|
urlParams.forEach((value, name) => {
|
|
lowerCaseParams.append(name.toLowerCase(), value);
|
|
});
|
|
|
|
return lowerCaseParams.get(key.toLowerCase());
|
|
}
|
|
|
|
export 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);
|
|
}
|
|
|
|
export function getLineItemQueryString(lineItems, parameterName) {
|
|
const queryString = getLineItemsFlattened(lineItems).map((lineItem, index) =>
|
|
`${parameterName}[${index}].partNumber=${lineItem.partNumber}`).join('&');
|
|
return queryString.length !== 0 ? `&${queryString}` : '';
|
|
}
|