diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index c55410da..45bceb0a 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -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: { diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 1f45b9d0..45382ced 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -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) => { diff --git a/src/layouts/schedule-page/service-location/service-location.spec.js b/src/layouts/schedule-page/service-location/service-location.spec.js index 20e0596b..6f8d960d 100644 --- a/src/layouts/schedule-page/service-location/service-location.spec.js +++ b/src/layouts/schedule-page/service-location/service-location.spec.js @@ -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(); diff --git a/src/layouts/schedule-page/service-location/service-location.vue b/src/layouts/schedule-page/service-location/service-location.vue index f9c7ef43..75a5aa40 100644 --- a/src/layouts/schedule-page/service-location/service-location.vue +++ b/src/layouts/schedule-page/service-location/service-location.vue @@ -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) { diff --git a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue index fb013177..934bd75f 100644 --- a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue +++ b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue @@ -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) { diff --git a/src/store/index.js b/src/store/index.js index 63f8a623..37ade8b6 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -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({ diff --git a/src/store/store.spec.js b/src/store/store.spec.js index 79df6796..4f4173d8 100644 --- a/src/store/store.spec.js +++ b/src/store/store.spec.js @@ -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);