diff --git a/src/constants/endpoints.js b/src/constants/endpoints.js index 7d83642a6..f1aeded2e 100644 --- a/src/constants/endpoints.js +++ b/src/constants/endpoints.js @@ -108,7 +108,10 @@ const endpoints = { }, GetShopTimeSlots: { url: "/schedule/api/v1/schedule/shop-time-slots", - mockUrl: "https://mockey.qa.sagaws.net/service/shop-time-slots", // TODO: REMOVE MOCKURL + method: "POST", + }, + GetMobileTimeSlots: { + url: "/schedule/api/v1/schedule/mobile-time-slots", method: "POST", }, GetMobileEarlyBirdFee: { diff --git a/src/digital-components/date-picker/date-picker.vue b/src/digital-components/date-picker/date-picker.vue index bd9ae6d9a..fefeb30ff 100644 --- a/src/digital-components/date-picker/date-picker.vue +++ b/src/digital-components/date-picker/date-picker.vue @@ -245,9 +245,10 @@ export default { let myPromise = new Promise((resolve, reject) => { const response = config.customSelectableDatesCallback( - initialViewStartDate, - initialViewEndDate, - store.getters.order.serviceLocation.appointmentType + initialViewStartDate.toISOString().split("T")[0], + initialViewEndDate.toISOString().split("T")[0], + store.getters.order.serviceLocation.appointmentType, + store.getters.order.serviceLocation.provider.providerNumber ); resolve(response); }); @@ -309,7 +310,6 @@ export default { this.hideSomeDaysForInitialView = config.hideSomeDaysForInitialView; const hideSecondMonth = config.hideSecondMonth; const direction = config.calendarViewDirection; - const monthsAfterToLoadOffset = 12; const monthsBeforeToLoadOffset = 36; config.initialShopTimeSlotsResponse.days.forEach((selectableDate) => { @@ -526,7 +526,8 @@ export default { const moreSelectableDates = await this.customSelectableDatesCallback( monthStart, monthEnd, - this.$store.getters.order.serviceLocation.appointmentType + this.$store.getters.order.serviceLocation.appointmentType, + this.$store.getters.order.serviceLocation.provider.providerNumber ); moreSelectableDates.days.forEach((selectableDate) => { const index = this.selectableDatesData.findIndex( diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index b43be23ad..24deff3e5 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -81,7 +81,7 @@ import store from "@/store"; defineRule("date-required", required(errorMessages.DATE_REQUIRED)); defineRule("time-slot-selection-required", required(errorMessages.DATE_REQUIRED)); -const getAvailableDates = async (startDate, endDate, appointmentType) => { +const getAvailableDates = async (startDate, endDate, appointmentType, providerNumber) => { // USING DATES PASSED, MAKE AN API CALL const newShopTimeSlotsResponse = await baseMixin.methods.dispatchStoreAction( storeActions.GET_SHOP_TIME_SLOTS, @@ -89,6 +89,7 @@ const getAvailableDates = async (startDate, endDate, appointmentType) => { startDate: startDate, endDate: endDate, shopAppointmentType: appointmentType, + providerNumber: providerNumber, }, false ); @@ -152,7 +153,6 @@ export default { const alertReasonsPromise = locationAlerts.methods.loadInitialData( store.getters.order.serviceLocation.zipCodeCtu ); - // Settle promises and get results const promiseResultMap = [ { @@ -241,7 +241,8 @@ export default { const newShopTimeSlots = await getAvailableDates( startDate, endDate, - this.appointmentType + this.appointmentType, + this.$store.getters.order.serviceLocation.provider.providerNumber ); // ADD API CALL RESULTS TO EXISTING DATE DATA this.selectableDatesData.days = this.selectableDatesData.days.concat( @@ -262,7 +263,7 @@ export default { return timeSlots.find((timeSlot) => timeSlot.id === timeSlotId); }, timeSlotModalClosed() { - // Clear the selectedDate if no timeslot has been selected + // Clear the selectedDate if no timeSlot has been selected if (!this.selectedTimeSlotData.id) { this.selectedDate = null; } @@ -302,6 +303,7 @@ export default { convertSelectedDateToShortMonthAndDay(selectedDate) { // This conversion ensures we don't get get GMT induced date changes const dateObject = new Date(`${selectedDate.dateString}T00:00:00`); + // Ex: April 25 return dateObject.toLocaleDateString("en-us", { month: "short", day: "numeric" }); }, // Expected input: "HH:MM:SS" diff --git a/src/layouts/schedule/time-slot-modal-question/timeslot-modal-list-button/timeslot-modal-list-button.vue b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-list-button/time-slot-modal-list-button.vue similarity index 97% rename from src/layouts/schedule/time-slot-modal-question/timeslot-modal-list-button/timeslot-modal-list-button.vue rename to src/layouts/schedule/time-slot-modal-question/time-slot-modal-list-button/time-slot-modal-list-button.vue index 8c0f3db0a..44ac0d9e8 100644 --- a/src/layouts/schedule/time-slot-modal-question/timeslot-modal-list-button/timeslot-modal-list-button.vue +++ b/src/layouts/schedule/time-slot-modal-question/time-slot-modal-list-button/time-slot-modal-list-button.vue @@ -15,7 +15,6 @@ {{ formattedButtonLabelSubCopy }} - {{ screenReaderOnlyText }} @@ -28,7 +27,7 @@ import baseInputButton from "@/digital-components/base-input-button/base-input-b import inputButtonWrapperMixin from "@/mixins/input-button-wrapper-mixin"; export default { - name: "timeslotModalListButton", + name: "timeSlotModalListButton", mixins: [inputButtonWrapperMixin], computed: { formattedButtonLabelSubCopy() { @@ -52,9 +51,6 @@ export default {