DigitalConsumer.ISS/src/helpers/querystring-helper.js
2024-05-07 14:38:43 -05:00

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}` : '';
}