diff --git a/src/lib/components/AdventureCard.svelte b/src/lib/components/AdventureCard.svelte index 4adc189..d8951fb 100644 --- a/src/lib/components/AdventureCard.svelte +++ b/src/lib/components/AdventureCard.svelte @@ -14,7 +14,6 @@ export let id: Number | undefined = undefined; export let regionId: String | undefined = undefined; export let visited: Boolean | undefined = undefined; - export let countryCode: String | undefined = undefined; function remove() { dispatch("remove", id); @@ -35,7 +34,8 @@ } function moreInfo() { - goto(`/worldtravel/${countryCode}/${regionId}`); + console.log(id); + goto(`/adventure/${id}`); } @@ -60,6 +60,7 @@ {#if type == "mylog"} + {/if} {#if type == "featured"} diff --git a/src/routes/adventure/[id]/+page.server.ts b/src/routes/adventure/[id]/+page.server.ts new file mode 100644 index 0000000..f332b5b --- /dev/null +++ b/src/routes/adventure/[id]/+page.server.ts @@ -0,0 +1,32 @@ +import { redirect } from "@sveltejs/kit"; +import type { PageServerLoad } from "./$types"; +import { db } from "$lib/db/db.server"; +import { and, eq } from "drizzle-orm"; +import { adventureTable } from "$lib/db/schema"; + +export const load = (async (event) => { + if (!event.locals.user) { + return redirect(302, "/login"); + } + + let adventureUserId = await db + .select({ userId: adventureTable.userId }) + .from(adventureTable) + .where(eq(adventureTable.id, Number(event.params.id))) + .limit(1) + .execute(); + + console.log(adventureUserId); + + if ( + adventureUserId && + adventureUserId[0]?.userId !== event.locals.user.id && + adventureUserId !== null + ) { + return redirect(302, "/log"); + } + + let adventure = await event.fetch(`/api/adventure?id=${event.params.id}`); + + return { adventure: await adventure.json() }; +}) satisfies PageServerLoad; diff --git a/src/routes/adventure/[id]/+page.svelte b/src/routes/adventure/[id]/+page.svelte new file mode 100644 index 0000000..d9cd33e --- /dev/null +++ b/src/routes/adventure/[id]/+page.svelte @@ -0,0 +1,27 @@ + + +{#if !adventure} +
{adventure.location}
+{/if} diff --git a/src/routes/api/adventure/+server.ts b/src/routes/api/adventure/+server.ts index 18c9262..742d9a5 100644 --- a/src/routes/api/adventure/+server.ts +++ b/src/routes/api/adventure/+server.ts @@ -27,7 +27,8 @@ export const GET: RequestHandler = async ({ url, locals }) => { .where( and( eq(adventureTable.id, Number(id)), // Convert id to number - eq(adventureTable.userId, user.id) + eq(adventureTable.userId, user.id), + eq(adventureTable.type, "mylog") ) ) .limit(1) diff --git a/src/routes/featured/+page.svelte b/src/routes/featured/+page.svelte index eb8f6a2..0130fca 100644 --- a/src/routes/featured/+page.svelte +++ b/src/routes/featured/+page.svelte @@ -50,10 +50,10 @@