import { env } from '$env/dynamic/private'; import { error } from '@sveltejs/kit'; import type { CalendarEvent, Exam } from '$lib/data/CMSDataType'; import dayjs from 'dayjs'; import type { PageServerLoad } from './$types'; export const load: PageServerLoad = async ({ fetch }) => { const res = await fetch(env.API_QUALIFYING_URL + '/qualifying'); if (!res.ok) throw error(res.status, 'ไม่สามารถอ่านข้อมูลการสอบได้'); const exams: Exam[] = await res.json(); const events: CalendarEvent[] = []; exams.forEach((ex) => { const { id, title, announcement_startDate } = ex; const url = '/qualifying/' + id; ex.date = dayjs(announcement_startDate).format('DD MMM BBBB'); ex.image = ex.image ? ex.image : '/images/exam_place_holder.png'; if (!ex.announcementExam) return; //ignore other date for normal post if (ex.register_startDate) { const start = ex.register_startDate; const end = dayjs(ex.register_endDate).add(1, 'day').format('YYYY-MM-DD'); events.push({ id, title: 'สมัคร:' + title, start, end, url, backgroundColor: '#67a1ff4a' }); } if (ex.payment_startDate) { const start = ex.payment_startDate; const end = dayjs(ex.payment_endDate).add(1, 'day').format('YYYY-MM-DD'); events.push({ id, title: 'ชำระเงิน:' + title, start, end, url, backgroundColor: '#D2B4DE' }); } if (ex.examDate) { const start = ex.examDate; events.push({ id, title: 'วันสอบ:' + title, start, url, backgroundColor: '#a2d9ce8f' }); } }); return { exams, events }; };