import { BASE_URL } from '$env/static/private'; import { Logger } from '$lib/log'; import { redirect } from '@sveltejs/kit'; import type { PageServerLoad } from './$types'; import { TidalPlaylistAdder } from '$lib/server/playlist/tidalPlaylistAdder'; import { URL } from 'node:url'; const { DEV } = import.meta.env; const logger = new Logger('TidalAuth'); export const load: PageServerLoad = async ({ url, request }) => { const forwardedHost = request.headers.get('X-Forwarded-Host'); let redirect_base; if (DEV) { redirect_base = url.origin; } else if (forwardedHost) { redirect_base = `${url.protocol}//${forwardedHost}`; } else { redirect_base = BASE_URL; } const redirect_uri = new URL(`${redirect_base}${url.pathname}`); const adder = new TidalPlaylistAdder(); logger.debug(url.searchParams, url.hostname, redirect_uri); if (url.searchParams.has('code')) { await adder.receivedAuthCode(url.searchParams.get('code') || '', redirect_uri); redirect(307, '/'); } else if (url.searchParams.has('error')) { logger.error('received error', url.searchParams.get('error')); return; } if (await adder.authCodeExists()) { redirect(307, '/'); } const authUrl = adder.constructAuthUrl(redirect_uri); logger.debug('+page.server.ts', authUrl.toString()); redirect(307, authUrl); };