import { apiBaseUrl } from "$lib/components/consts"; import AdminSelectedEmpireStore from "$lib/stores/admin-page/EmpireStore"; import AdminSelectedGameStore from "$lib/stores/admin-page/GameStore"; import AuthTokenStore from "$lib/stores/AuthTokenStore"; import type { ChellarisGameInfo } from "$lib/types/chellaris"; import { redirect } from "@sveltejs/kit"; import AdminSelectedGroupStore from '../../lib/stores/admin-page/GroupStore'; export async function load ({ fetch }) { let authToken = ""; AuthTokenStore.subscribe(token => { authToken = token; }); const auth = await (await fetch(apiBaseUrl + "/v3/auth",{ headers: { 'Content-Type': 'application/json', 'x-api-key': authToken } })).json(); if (!auth.admin && !auth.moderator) { throw redirect(303, '/401'); } const gameList: { [key: number]: ChellarisGameInfo } = await (await fetch(apiBaseUrl + "/v3/games")).json(); let store: string | null; if (typeof localStorage !== 'undefined') { // Game Selection store = localStorage.getItem('adminGameSelection'); if (typeof store === 'string') { AdminSelectedGameStore.set(JSON.parse(store)); } // Group Selection store = localStorage.getItem('adminGroupSelection'); if (typeof store === 'string' && store != "\"\"") { AdminSelectedGroupStore.set(JSON.parse(store)); } else if (typeof store === 'string') { AdminSelectedGroupStore.set({}); } // Empire Selection store = localStorage.getItem('adminEmpireSelection'); if (typeof store === 'string' && store != "\"\"") { AdminSelectedEmpireStore.set(JSON.parse(store)); } else if (typeof store === 'string') { AdminSelectedEmpireStore.set({}); } } return { games: gameList }; }