Added handles to handle traffic to api
This commit is contained in:
parent
91adb5ec98
commit
363c25045c
43
src/handles/handle.ts
Normal file
43
src/handles/handle.ts
Normal 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
|
||||||
|
)
|
||||||
Loading…
x
Reference in New Issue
Block a user