import {discordAvatarURL} from '$lib/server/auth/discord'; import {getDataSource} from '$lib/server/db'; import {AuthSession} from '$lib/server/entity/AuthSession'; import type {LayoutServerLoad} from './$types'; async function findSession (sessionID?: string) { const dataSource = await getDataSource(); const sessionsRepo = dataSource.getRepository(AuthSession); if (!sessionID) { return null; } return await sessionsRepo.findOne({where: {id: sessionID}}); } export const load: LayoutServerLoad = async ({cookies}) => { const sessionID = cookies.get('sessionid'); let session = await findSession(sessionID); if (!session) { return {}; } console.log('i am happening'); const response = await fetch('https://discordapp.com/api/v6/users/@me', { headers: { Authorization: `Bearer ${session.accessToken}`, }, }); if (response.status !== 200) { console.log(await response.text()); return { error: { code: 'user_info_fetch_failed', description: `Discord gave non-200 status when fetching user info: ${response.status}`, }, }; } const data = await response.json(); console.log('have data', data.username); return { user: { username: data.username, discriminator: data.discriminator, id: data.id, avatarURL: discordAvatarURL(data), }, }; };