From 3be055bb4815a645e8761d9de827287557f6eea2 Mon Sep 17 00:00:00 2001 From: FifthWit Date: Tue, 22 Apr 2025 15:33:25 -0500 Subject: [PATCH] Added Sharable lists --- .../migration.sql | 2 ++ prisma/schema.prisma | 1 + server/routes/lists/[id].get.ts | 22 +++++++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 prisma/migrations/20250422202708_added_public_lists_field/migration.sql create mode 100644 server/routes/lists/[id].get.ts diff --git a/prisma/migrations/20250422202708_added_public_lists_field/migration.sql b/prisma/migrations/20250422202708_added_public_lists_field/migration.sql new file mode 100644 index 0000000..fce1e1c --- /dev/null +++ b/prisma/migrations/20250422202708_added_public_lists_field/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "lists" ADD COLUMN "public" BOOLEAN NOT NULL DEFAULT false; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 8b2e2d0..2691c0a 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -85,6 +85,7 @@ model lists { description String? @db.VarChar(255) created_at DateTime @default(now()) @db.Timestamptz(0) updated_at DateTime @updatedAt @db.Timestamptz(0) + public Boolean @default(false) list_items list_items[] @@index([user_id], map: "lists_user_id_index") diff --git a/server/routes/lists/[id].get.ts b/server/routes/lists/[id].get.ts new file mode 100644 index 0000000..d1b4bda --- /dev/null +++ b/server/routes/lists/[id].get.ts @@ -0,0 +1,22 @@ +import { prisma } from "#imports"; + +export default defineEventHandler(async (event) => { + const id = event.context.params?.id; + const listInfo = await prisma.lists.findUnique({ + where: { + id: id, + }, + include: { + list_items: true, + }, + }); + + if (!listInfo.public) { + return createError({ + statusCode: 403, + message: "List is not public", + }); + } + + return listInfo; +}) \ No newline at end of file