From 77b1aba5acc66dfaeb02b08d60d88442336026a6 Mon Sep 17 00:00:00 2001 From: MohamedBassem Date: Tue, 23 Apr 2024 13:56:35 +0100 Subject: feature(extension): Allow adding tags and lists to newly hoarded bookmarks --- packages/trpc/routers/lists.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'packages/trpc/routers/lists.ts') diff --git a/packages/trpc/routers/lists.ts b/packages/trpc/routers/lists.ts index 5cab0ac3..d4b56ecf 100644 --- a/packages/trpc/routers/lists.ts +++ b/packages/trpc/routers/lists.ts @@ -1,3 +1,4 @@ +import assert from "node:assert"; import { experimental_trpcMiddleware, TRPCError } from "@trpc/server"; import { and, eq } from "drizzle-orm"; import { z } from "zod"; @@ -222,4 +223,23 @@ export const listsAppRouter = router({ return { lists }; }), + getListsOfBookmark: authedProcedure + .input(z.object({ bookmarkId: z.string() })) + .output( + z.object({ + lists: z.array(zBookmarkListSchema), + }), + ) + .use(ensureBookmarkOwnership) + .query(async ({ input, ctx }) => { + const lists = await ctx.db.query.bookmarksInLists.findMany({ + where: and(eq(bookmarksInLists.bookmarkId, input.bookmarkId)), + with: { + list: true, + }, + }); + assert(lists.map((l) => l.list.userId).every((id) => id == ctx.user.id)); + + return { lists: lists.map((l) => l.list) }; + }), }); -- cgit v1.2.3-70-g09d2