From 363c25045c4352b4b0d4925a2b5a5a393a9857fa Mon Sep 17 00:00:00 2001 From: Christian Risi <75698846+CnF-Gris@users.noreply.github.com> Date: Mon, 30 Jun 2025 11:54:20 +0000 Subject: [PATCH] Added handles to handle traffic to api --- src/handles/handle.ts | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/handles/handle.ts diff --git a/src/handles/handle.ts b/src/handles/handle.ts new file mode 100644 index 0000000..3bec8b1 --- /dev/null +++ b/src/handles/handle.ts @@ -0,0 +1,43 @@ +import { AppData } from "$lib/classes/app-sessions"; +import { logger } from "$lib/utils/logger"; +import { error, redirect, type Handle } from "@sveltejs/kit"; +import { sequence } from "@sveltejs/kit/hooks"; + + +const sessionConstructorHandle = (async ({event, resolve}) => { + + const data = await AppData.extractAppDataFromCookies(event.cookies) + + logger.debug(`Session Data: ${data}`, "Session Handle") + + event.locals.session = data + + return await resolve(event) + +}) satisfies Handle + + +const apiHandle = (async ({event, resolve}) => { + + logger.debug(event.url.pathname, "API Handle") + logger.debug(`Session Data: ${event.locals.session}`, "API Handle") + + if(!event.url.pathname.startsWith("/api/program")) { + // next handle + return await resolve(event) + } + + if (!event.locals.session) { + // Satisfies HTTP Codes: + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/401 + return error(401, "Not Authorized") + } + + return await resolve(event) + +}) satisfies Handle + +export const handles = sequence( + sessionConstructorHandle, + apiHandle +) \ No newline at end of file