From 9f9f0c3d8741ffbc9e57fe292f8524afe69ccfcc Mon Sep 17 00:00:00 2001 From: Sean Morley Date: Tue, 30 Apr 2024 22:52:07 +0000 Subject: [PATCH] Refactor adventure page layout to display activity types in +page.svelte and update server files --- src/routes/adventure/[id]/+page.svelte | 9 +++++++++ src/routes/api/adventure/+server.ts | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/routes/adventure/[id]/+page.svelte b/src/routes/adventure/[id]/+page.svelte index 9ed5686..9576bc3 100644 --- a/src/routes/adventure/[id]/+page.svelte +++ b/src/routes/adventure/[id]/+page.svelte @@ -11,6 +11,7 @@ onMount(() => { if (data.adventure.adventure) { adventure = data.adventure.adventure[0]; + console.log(adventure.activityTypes); } else { goto("/404"); } @@ -63,4 +64,12 @@ /> {/if} + {#if adventure.activityTypes && adventure.activityTypes.length > 0} +
+

Activities:

+ +
+ {/if} {/if} diff --git a/src/routes/api/adventure/+server.ts b/src/routes/api/adventure/+server.ts index 742d9a5..57ca82e 100644 --- a/src/routes/api/adventure/+server.ts +++ b/src/routes/api/adventure/+server.ts @@ -1,5 +1,6 @@ import { db } from "$lib/db/db.server"; import { adventureTable } from "$lib/db/schema"; +import type { Adventure } from "$lib/utils/types"; import { json, type RequestEvent, type RequestHandler } from "@sveltejs/kit"; import { and, eq } from "drizzle-orm"; @@ -38,6 +39,20 @@ export const GET: RequestHandler = async ({ url, locals }) => { return json({ error: "Adventure not found" }, { status: 404 }); } + let adventureData = JSON.stringify( + adventure.map((r) => { + const adventure: Adventure = r as Adventure; + if (typeof adventure.activityTypes === "string") { + try { + adventure.activityTypes = JSON.parse(adventure.activityTypes); + } catch (error) { + console.error("Error parsing activityTypes:", error); + adventure.activityTypes = undefined; + } + } + }) + ); + // console.log("GET /api/adventure?id=", id); // console.log("User:", user);