Added handles to handle traffic to api

This commit is contained in:
Christian Risi 2025-06-30 11:54:20 +00:00
parent 91adb5ec98
commit 363c25045c

43
src/handles/handle.ts Normal file
View File

@ -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
)