aboutsummaryrefslogtreecommitdiffstats
path: root/packages/trpc/routers/bookmarks.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-03-01 15:19:12 +0000
committerMohamed Bassem <me@mbassem.com>2025-03-02 10:46:59 +0000
commitfeac3147fe3af648f8f39f339411dbeff116ca6c (patch)
tree431a6e5efa715f235a5c4c10a1e74bd61551b117 /packages/trpc/routers/bookmarks.ts
parentac885d8e2c2bb6c7c76aa6ef9d39bdb149df8612 (diff)
downloadkarakeep-feac3147fe3af648f8f39f339411dbeff116ca6c.tar.zst
refactor: Move the list logic into a separate model
Diffstat (limited to 'packages/trpc/routers/bookmarks.ts')
-rw-r--r--packages/trpc/routers/bookmarks.ts29
1 files changed, 4 insertions, 25 deletions
diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts
index 3b2d23ce..63d20625 100644
--- a/packages/trpc/routers/bookmarks.ts
+++ b/packages/trpc/routers/bookmarks.ts
@@ -26,7 +26,6 @@ import {
AssetTypes,
bookmarkAssets,
bookmarkLinks,
- bookmarkLists,
bookmarks,
bookmarksInLists,
bookmarkTags,
@@ -70,6 +69,7 @@ import type { AuthedContext, Context } from "../index";
import { authedProcedure, router } from "../index";
import { mapDBAssetTypeToUserType } from "../lib/attachments";
import { getBookmarkIdsFromMatcher } from "../lib/search";
+import { List } from "../models/lists";
import { ensureAssetOwnership } from "./assets";
export const ensureBookmarkOwnership = experimental_trpcMiddleware<{
@@ -652,31 +652,10 @@ export const bookmarksAppRouter = router({
input.limit = DEFAULT_NUM_BOOKMARKS_PER_PAGE;
}
if (input.listId) {
- const list = await ctx.db.query.bookmarkLists.findFirst({
- where: and(
- eq(bookmarkLists.id, input.listId),
- eq(bookmarkLists.userId, ctx.user.id),
- ),
- });
- if (!list) {
- throw new TRPCError({
- code: "NOT_FOUND",
- message: "List not found",
- });
- }
+ const list = await List.fromId(ctx, input.listId);
if (list.type === "smart") {
- invariant(list.query);
- const query = parseSearchQuery(list.query);
- if (query.result !== "full") {
- throw new TRPCError({
- code: "INTERNAL_SERVER_ERROR",
- message: "Found an invalid smart list query",
- });
- }
- if (query.matcher) {
- input.ids = await getBookmarkIdsFromMatcher(ctx, query.matcher);
- delete input.listId;
- }
+ input.ids = await list.getBookmarkIds();
+ delete input.listId;
}
}