import { error } from '@sveltejs/kit' import type { PageServerLoad } from './$types' import { fetchAPI } from '$utils/api' import { PUBLIC_PREVIEW_COUNT } from '$env/static/public' export const load: PageServerLoad = async () => { try { const res = await fetchAPI(`query { locations: location (filter: { status: { _eq: "published" }}) { id name slug coordinates country { name slug flag { id } continent { slug } } date_updated photos ( sort: "-date_created", limit: ${PUBLIC_PREVIEW_COUNT} ) { image { id title } date_created } has_poster globe_close } countries: country (filter: { status: { _eq: "published" }}) { id name slug flag { id } locations { id slug } } continents: continent (filter: { countries: { slug: { _neq: "_empty" }}}) { name slug rotation_x rotation_y } settings { seo_name seo_title seo_description seo_image { id } description explore_list limit_new instagram footer_links switcher_links newsletter_subtitle newsletter_text } shop { enabled module_title module_text module_images { directus_files_id { id title } } } # Count countPhotos: photo_aggregated (filter: { status: { _eq: "published" }}) { count { id } } countLocations: location_aggregated (filter: { status: { _eq: "published" }}) { count { id } } countCountries: country_aggregated (filter: { status: { _eq: "published" }}) { count { id } } }`) if (res) { const { data: { countPhotos, countLocations, countCountries, ...rest }} = res return { ...rest, count: { photos: countPhotos[0].count.id, locations: countLocations[0].count.id, countries: countCountries[0].count.id, }, } } } catch (err) { throw error(500, err || 'Failed to fetch data') } }