Merge pull request #2029 from Safelite/feature/csr-2149
Update calls for service location page
This commit is contained in:
commit
a71f5562dc
2 changed files with 37 additions and 6 deletions
|
|
@ -50,3 +50,11 @@ export function getItemsWithoutRecalParts(lineItems) {
|
||||||
|
|
||||||
return childrenFiltered;
|
return childrenFiltered;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getTopLevelPartsWithRecal(lineItems) {
|
||||||
|
if (!lineItems) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lineItems.filter((li) => isRecalPartOrHasChildRecalPart(li));
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ import {
|
||||||
coverageTypeValue,
|
coverageTypeValue,
|
||||||
coverageTypeEnum,
|
coverageTypeEnum,
|
||||||
} from "@/constants/insurance";
|
} from "@/constants/insurance";
|
||||||
import { containsRecalParts } from "@/helpers/recal-helper";
|
import { containsRecalParts, getTopLevelPartsWithRecal } from "@/helpers/recal-helper";
|
||||||
import { externalParameterStatus } from "@/constants/external-parameters";
|
import { externalParameterStatus } from "@/constants/external-parameters";
|
||||||
import { experimentSettings } from "@/constants/experiments";
|
import { experimentSettings } from "@/constants/experiments";
|
||||||
import experimentMixin from "@/mixins/experiment-mixin.js";
|
import experimentMixin from "@/mixins/experiment-mixin.js";
|
||||||
|
|
@ -1622,16 +1622,19 @@ export const actions = {
|
||||||
},
|
},
|
||||||
|
|
||||||
getServiceabilityDetails(context, { payload: { serviceZipCode }, pageNameToLog }) {
|
getServiceabilityDetails(context, { payload: { serviceZipCode }, pageNameToLog }) {
|
||||||
const lineItemsWithOnlyPartNumbers = context.getters.order.lineItems.supportingItems?.map(
|
const escapeRecalibrationType = (rt) => rt.split("&").join("%26");
|
||||||
|
|
||||||
|
const partialLineItemsObjects = context.getters.order.lineItems.glassParts?.map(
|
||||||
(lineItem) => ({
|
(lineItem) => ({
|
||||||
partNumber: lineItem.partNumber,
|
partNumber: lineItem.partNumber,
|
||||||
|
recalibrationType: lineItem.recalibrationType ? escapeRecalibrationType(lineItem.recalibrationType) : undefined,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
var lineItems = null;
|
var lineItems = null;
|
||||||
if (lineItemsWithOnlyPartNumbers) {
|
if (partialLineItemsObjects) {
|
||||||
lineItems = buildQueryStringParameterFromArrayOfComplexObjects(
|
lineItems = buildQueryStringParameterFromArrayOfComplexObjects(
|
||||||
lineItemsWithOnlyPartNumbers,
|
partialLineItemsObjects,
|
||||||
"lineItems"
|
"lineItems"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -1646,7 +1649,12 @@ export const actions = {
|
||||||
"glassPieces"
|
"glassPieces"
|
||||||
);
|
);
|
||||||
|
|
||||||
var endPoint = `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&carId=${carId}`;
|
const parentAccountNumber =
|
||||||
|
context.getters.order.payment.parentAccountNumber ??
|
||||||
|
applicationConfig.CASH_PARENT_ACCOUNT_NUMBER;
|
||||||
|
const referralSequenceNumber = context.getters.order.referralSequenceNumber;
|
||||||
|
|
||||||
|
var endPoint = `${endpoints.GetServiceabilityDetails.url}?zip=${serviceZipCode}&carId=${carId}&parentAccountNumber=${parentAccountNumber}&referralSequenceNumber=${referralSequenceNumber}`;
|
||||||
if (lineItems) {
|
if (lineItems) {
|
||||||
endPoint += `&${lineItems}`;
|
endPoint += `&${lineItems}`;
|
||||||
}
|
}
|
||||||
|
|
@ -1665,11 +1673,26 @@ export const actions = {
|
||||||
|
|
||||||
getProviders(context, { payload: { serviceZipCode }, pageNameToLog }) {
|
getProviders(context, { payload: { serviceZipCode }, pageNameToLog }) {
|
||||||
const damageType = context.getters.damage.isRepair ? "Repair" : "Replace";
|
const damageType = context.getters.damage.isRepair ? "Repair" : "Replace";
|
||||||
|
const accountNumber =
|
||||||
|
context.getters.order.payment.parentAccountNumber ??
|
||||||
|
applicationConfig.CASH_PARENT_ACCOUNT_NUMBER;
|
||||||
|
const carId = context.getters.order.vehicle.carId;
|
||||||
|
const partsWithRecal = getTopLevelPartsWithRecal(
|
||||||
|
context.getters.order.lineItems.glassParts
|
||||||
|
);
|
||||||
|
const windshieldPartWithRecal = partsWithRecal?.length > 0 ? partsWithRecal[0] : null;
|
||||||
|
|
||||||
const shopRadiusInMiles = 100;
|
const shopRadiusInMiles = 100;
|
||||||
|
|
||||||
|
let url = `${endpoints.GetProviders.url}/${serviceZipCode}/${damageType}/${shopRadiusInMiles}/${accountNumber}/true/${carId}`;
|
||||||
|
|
||||||
|
if (windshieldPartWithRecal) {
|
||||||
|
url += `/${windshieldPartWithRecal.partNumber}`;
|
||||||
|
}
|
||||||
|
|
||||||
return globalMethods.callHttpClient({
|
return globalMethods.callHttpClient({
|
||||||
method: endpoints.GetProviders.method,
|
method: endpoints.GetProviders.method,
|
||||||
endpoint: `${endpoints.GetProviders.url}/${serviceZipCode}/${damageType}/${shopRadiusInMiles}`,
|
endpoint: url,
|
||||||
logApiCall: true,
|
logApiCall: true,
|
||||||
pageNameToLog: pageNameToLog,
|
pageNameToLog: pageNameToLog,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue