38 lines
1.6 KiB
TypeScript
38 lines
1.6 KiB
TypeScript
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 = ex.register_endDate
|
|
events.push({id,"title":"สมัคร:"+title,start,end,url, backgroundColor:'#67a1ff4a'})
|
|
}
|
|
if(ex.payment_startDate){
|
|
const start = ex.payment_startDate
|
|
const end = ex.payment_endDate
|
|
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}
|
|
}
|
|
|