The slots API returns data.sessions[].slots[] with start_time (HH:MM), is_available, and start/end unix timestamps — not the morning/evening + time/status shape the UI assumed. Add lib/appointmentSlots.js to flatten sessions into morning/evening by start_time, fetch with doctor.uuid, and read item.start_time / item.is_available in the slot grid. Derive the clinic address from the already-loaded doctor.address by location_id instead of a separate auth-required call. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
22 lines
543 B
JavaScript
22 lines
543 B
JavaScript
const MORNING_END = "12:00";
|
|
|
|
export function adaptSlots(slotsResponse) {
|
|
const sessions = slotsResponse?.data?.sessions ?? slotsResponse?.sessions ?? [];
|
|
|
|
const morning = [];
|
|
const evening = [];
|
|
|
|
sessions.forEach((session) => {
|
|
(session.slots ?? []).forEach((slot) => {
|
|
const target = slot.start_time < MORNING_END ? morning : evening;
|
|
target.push(slot);
|
|
});
|
|
});
|
|
|
|
return { morning, evening };
|
|
}
|
|
|
|
export function hasAvailable(slots) {
|
|
return Array.isArray(slots) && slots.some((slot) => slot.is_available);
|
|
}
|