INSR-2208 Only show big truck providers

Cleaned up GetProviders store logic.
This commit is contained in:
Josh Dassinger 2026-02-12 10:54:08 -06:00
parent c2151f5359
commit fa7e2bc596
7 changed files with 36 additions and 38 deletions

View file

@ -81,7 +81,16 @@ const endpoints = Object.freeze({
method: 'POST' method: 'POST'
}, },
GetProviders: { 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' method: 'GET'
}, },
GetCapabilityQuestions: { GetCapabilityQuestions: {

View file

@ -237,7 +237,7 @@ export default {
const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode); const mobileFeePartPromise = getPricedMobileFeePart(serviceZipCode);
const serviceabilityDetailsPromise = getServiceabilityDetails(serviceZipCode); const serviceabilityDetailsPromise = getServiceabilityDetails(serviceZipCode);
const getGlassFeesPromise = useMainStore().getGlassFees(); const getGlassFeesPromise = useMainStore().getGlassFees();
const providersPromise = useMainStore().getProviders(serviceZipCode); const providersPromise = useMainStore().getSafeliteProviders(serviceZipCode);
const premiumFeePromise = useMainStore().getMobilePremiumFee(); const premiumFeePromise = useMainStore().getMobilePremiumFee();
const premiumFeeWithPricePromise = premiumFeePromise.then((result) => { 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); const wrapper = mount(serviceLocation, mountOptions);
wrapper.vm.$router.navigateWithSpinner = jest.fn(); 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) => { await providersPromise.then((result) => {
const providers = result.data; const providers = result.data;
if (providers) { if (providers) {

View file

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

View file

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

View file

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