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 {