Merge pull request #1066 from Safelite/feature/digital/INSR-2208

INSR-2208 Only show big truck providers
This commit is contained in:
Josh Dassinger 2026-02-12 11:31:55 -06:00 committed by GitHub
commit ab2a352ac8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 36 additions and 38 deletions

View file

@ -81,7 +81,16 @@ const endpoints = Object.freeze({
method: 'POST'
},
GetProviders: {
url: `${LOCATION_BASE_URL}/providers`,
url: (
zipCode,
damageType,
radius,
parentAccountNumber,
safeliteOnly,
carId,
recalPartNumber,
isBigTruck
) => `${LOCATION_BASE_URL}/providers/${zipCode}/${damageType}/${radius}/${parentAccountNumber}/${safeliteOnly}/${carId}/${recalPartNumber != null ? `${recalPartNumber}/` : ''}${isBigTruck}`,
method: 'GET'
},
GetCapabilityQuestions: {

View file

@ -237,7 +237,7 @@ export default {
const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode);
const serviceabilityDetailsPromise = getServiceabilityDetails(serviceZipCode);
const getGlassFeesPromise = useMainStore().getGlassFees();
const providersPromise = useMainStore().getProviders(serviceZipCode);
const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode);
const premiumFeePromise = useMainStore().getMobilePremiumFee();
const premiumFeeWithPricePromise = premiumFeePromise.then((result) => {

View file

@ -147,7 +147,7 @@ function setupMocks({ appointmentType = AppointmentTypeStrings.IN_SHOP }) {
}
}
})];
useMainStore().getProviders = jest.fn().mockImplementation(() => mockProviders());
useMainStore().getSafeliteProviders = jest.fn().mockImplementation(() => mockProviders());
const wrapper = mount(serviceLocation, mountOptions);
wrapper.vm.$router.navigateWithSpinner = jest.fn();

View file

@ -557,7 +557,7 @@ export default {
}
});
const providersPromise = useMainStore().getProviders(this.mobileZipCode);
const providersPromise = useMainStore().getSafeliteProviders(this.mobileZipCode);
await providersPromise.then((result) => {
const providers = result.data;
if (providers) {

View file

@ -314,7 +314,7 @@ export default {
}
},
async getNearbyShops(radiusInMiles) {
const result = await useMainStore().getProviders(this.internalZipcode, radiusInMiles);
const result = await useMainStore().getSafeliteProviders(this.internalZipcode, radiusInMiles);
return result.data.shopProviders;
},
getFullProviderAddress(provider) {

View file

@ -1029,46 +1029,35 @@ export const useMainStore = defineStore({
});
},
getProviders(serviceZipCode, shopRadiusInMiles = 100) {
const { carId, isBigTruck } = this.order.vehicle;
const damageType = this.damage.isRepair ? 'Repair' : 'Replace';
const { parentAccountNumber } = this.order;
const partsWithRecal = getTopLevelGlassPartsWithRecal(this.order.lineItems.glassParts);
const windshieldPartWithRecal = partsWithRecal?.length > 0 ? partsWithRecal[0] : null;
const safeliteOnly = true;
let url = `${endpoints.GetProviders.url}/${serviceZipCode}/${damageType}/${shopRadiusInMiles}/${parentAccountNumber}/${safeliteOnly}/${carId}`;
if (windshieldPartWithRecal) {
url += `/${windshieldPartWithRecal.partNumber}`;
}
url += `/${isBigTruck}`;
return globalMethods.callHttpClient({
method: endpoints.GetProviders.method,
endpoint: url
});
getSafeliteProviders(zipCode, radius = 100) {
return this.getProviders(zipCode, radius, true)
},
getTpaProviders(zipCode, radius) {
return this.getProviders(zipCode, radius, false)
},
getProviders(zipcode, radius, safeliteOnly) {
const { carId, isBigTruck } = this.order.vehicle;
const damageType = this.damage.isRepair ? 'Repair' : 'Replace';
const { parentAccountNumber } = this.order;
const partsWithRecal = getTopLevelGlassPartsWithRecal(this.order.lineItems.glassParts);
const windshieldPartWithRecal = partsWithRecal?.length > 0 ? partsWithRecal[0] : null;
const safeliteOnly = false;
let url = `${endpoints.GetProviders.url}/${zipCode}/${damageType}/${radius}/${parentAccountNumber}/${safeliteOnly}/${carId}`;
if (windshieldPartWithRecal) {
url += `/${windshieldPartWithRecal.partNumber}`;
}
url += `/${isBigTruck}`;
return new Promise((resolve, reject) => {
globalMethods.callHttpClient({
method: endpoints.GetProviders.method,
endpoint: url
}).then((response) => resolve(response), (error) => reject(error));
return globalMethods.callHttpClient({
method: endpoints.GetProviders.method,
endpoint: endpoints.GetProviders.url(
zipcode,
damageType,
radius,
parentAccountNumber,
safeliteOnly,
carId,
windshieldPartWithRecal?.partNumber,
isBigTruck
)
});
},
getCarrierAccountInfo() {
return new Promise((resolve, reject) => {
globalMethods.callHttpClient({

View file

@ -1983,16 +1983,16 @@ describe('Store', () => {
const radius = getRandomInt(5, 100);
const isBigTruck = false;
store.order.vehicle.isBigTruck = isBigTruck;
const expectedEndpoint = [
endpoints.GetProviders.url,
const expectedEndpoint = endpoints.GetProviders.url(
zipCode,
damageType,
radius,
parentAccountNumber,
'false',
carId,
null,
isBigTruck
].join('/');
);
// Act
await store.getTpaProviders(zipCode, radius);