From df71664f20312e81134ee90ad561f55d3020ee0a Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 30 Aug 2024 20:04:29 -0700 Subject: typescript --- src/routes/(app)/+layout.server.ts | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/routes/(app)/+layout.server.ts (limited to 'src/routes/(app)/+layout.server.ts') diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts new file mode 100644 index 00000000..655a9425 --- /dev/null +++ b/src/routes/(app)/+layout.server.ts @@ -0,0 +1,48 @@ +import { redirect } from "@sveltejs/kit"; + import { get, auth, protectedRoutes } from "$lib/utils"; + +export async function load({ cookies, request, url, params }) { + let { pathname } = url; + let token = cookies.get("token"); + let rate, + rates = { USD: 1 }; + + let user; + if (token) { + try { + user = await get("/me", auth(cookies)); + } catch (e) {} + } + + if (user?.needsMigration) { + redirect(307, `/migrate`); + } + + if ( + user && + ["/login", "/register"].includes(pathname) && + request.method === "GET" + ) { + redirect(307, `/${user.username}`); + } + + if ( + protectedRoutes.find((p) => pathname.match(p)) && + (!user || user.username !== params.username) + ) { + redirect(307, "/login"); + } + + if (user && !user.pubkey && !pathname.includes("generate")) { + redirect(303, `/${user.username}/generate`); + } + + try { + rate = await get("/rate"); + rates = await get("/rates"); + } catch (e) { + console.log(e); + } + + return { user, token, rate, rates }; +} -- cgit v1.2.3