71 lines
2.8 KiB
JavaScript
71 lines
2.8 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}` : '';
|
|
}
|
|
|
|
export function getPartNumbersListForQueryString(lineItems, parameterName) {
|
|
const queryString = getLineItemsFlattened(lineItems).map((lineItem) =>
|
|
`${parameterName}=${lineItem.partNumber}`).join('&');
|
|
return queryString.length !== 0 ? `&${queryString}` : '';
|
|
}
|
|
|
|
export function getTaxLineItemQueryString(lineItems, parameterName) {
|
|
const queryString = getLineItemsFlattened(lineItems).map((lineItem, index) =>
|
|
`${parameterName}[${index}].partNumber=${lineItem.partNumber}`
|
|
+ `&${parameterName}[${index}].laborAmount=${lineItem.laborAmount}`
|
|
+ `&${parameterName}[${index}].sellingPrice=${lineItem.sellingPrice}`
|
|
+ `&${parameterName}[${index}].kitPrice=${lineItem.kitPrice}`).join('&');
|
|
return queryString.length !== 0 ? `&${queryString}` : '';
|
|
}
|
|
|
|
export function buildURLSearchParams(data) {
|
|
const params = new URLSearchParams();
|
|
Object.entries(data).forEach(([key, value]) => {
|
|
if (value == null) {
|
|
return;
|
|
}
|
|
if (Array.isArray(value)) {
|
|
value.forEach((arrayValue, index) => {
|
|
if (typeof value === 'object') {
|
|
Object.entries(arrayValue).forEach(([objectKey, objectValue]) => {
|
|
if (objectValue != null) {
|
|
params.append(`${key}[${index}].${objectKey}`, `${objectValue}`);
|
|
}
|
|
});
|
|
} else {
|
|
params.append(`${key}[${index}]`, `${value}`);
|
|
}
|
|
});
|
|
} else {
|
|
params.append(key, `${value}`);
|
|
}
|
|
});
|
|
|
|
return params;
|
|
}
|