From e7383877dfc75f672da37d9f8db71e60818b6480 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Wed, 8 Jan 2025 04:26:16 +0100 Subject: [PATCH] give schema to allow drizzle queries --- packages/web/src/lib/db/index.ts | 8 ++++++++ packages/web/src/lib/db/schema.ts | 5 ----- .../web/src/routes/progress/[id]/+page.server.ts | 12 ++++++++---- packages/web/src/routes/progress/[id]/+page.svelte | 11 ++++++++++- 4 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 packages/web/src/lib/db/index.ts diff --git a/packages/web/src/lib/db/index.ts b/packages/web/src/lib/db/index.ts new file mode 100644 index 0000000..49ea960 --- /dev/null +++ b/packages/web/src/lib/db/index.ts @@ -0,0 +1,8 @@ +import * as schema from './schema' +import { drizzle } from 'drizzle-orm/postgres-js'; +import postgres from 'postgres'; + +const client = postgres('postgresql://postgres:postgres@db:5432/db'); +export const db = drizzle(client, { schema }); + + diff --git a/packages/web/src/lib/db/schema.ts b/packages/web/src/lib/db/schema.ts index 43a05a4..8816c58 100644 --- a/packages/web/src/lib/db/schema.ts +++ b/packages/web/src/lib/db/schema.ts @@ -1,10 +1,5 @@ import { relations } from 'drizzle-orm'; import { integer, pgTable, serial, timestamp, varchar } from 'drizzle-orm/pg-core'; -import { drizzle } from 'drizzle-orm/postgres-js'; -import postgres from 'postgres'; - -const client = postgres('postgresql://postgres:postgres@db:5432/db'); -export const db = drizzle(client, {}); export const tasks = pgTable('tasks', { id: serial('id').primaryKey(), diff --git a/packages/web/src/routes/progress/[id]/+page.server.ts b/packages/web/src/routes/progress/[id]/+page.server.ts index b8323fd..112e483 100644 --- a/packages/web/src/routes/progress/[id]/+page.server.ts +++ b/packages/web/src/routes/progress/[id]/+page.server.ts @@ -1,8 +1,12 @@ -import { db, tasks } from "$lib/db/schema" -import { eq } from "drizzle-orm" +import { db } from "$lib/db" -export const load = async ({ params }) => { +export const load = async () => { return { - task: (await db.select().from(tasks).where(eq(tasks.id, params.id)))[0] + task: (await db.query.tasks.findFirst({ + with: { + tasksToTopics: true + } + }) + ) } } diff --git a/packages/web/src/routes/progress/[id]/+page.svelte b/packages/web/src/routes/progress/[id]/+page.svelte index acf129e..b670909 100644 --- a/packages/web/src/routes/progress/[id]/+page.svelte +++ b/packages/web/src/routes/progress/[id]/+page.svelte @@ -2,4 +2,13 @@ let { data } = $props(); -

{data.task.name} lol lo

+

{data.task?.name}

+ +

Topics ({data.task?.tasksToTopics.length})

+{#if data.task?.tasksToTopics} + {#each data.task?.tasksToTopics as topic} +
+ {topic.topicId} +
+ {/each} +{/if}