aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/app
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-04-13 18:29:14 +0000
committerMohamed Bassem <me@mbassem.com>2025-04-13 18:29:14 +0000
commit5bdb2d944a08f63772497e203f47533ffb640d82 (patch)
treef8e77b3d6c4820dac4942724bf662a7ff57bfc15 /apps/web/app
parent1373a7b21d7b04f0fe5ea2a008c88b6a85665fe0 (diff)
downloadkarakeep-5bdb2d944a08f63772497e203f47533ffb640d82.tar.zst
fix: Dont download html content by default in the bookmark grid. Fixes #1198
Diffstat (limited to 'apps/web/app')
-rw-r--r--apps/web/app/api/bookmarks/export/route.tsx1
-rw-r--r--apps/web/app/api/v1/bookmarks/[bookmarkId]/route.ts6
-rw-r--r--apps/web/app/api/v1/bookmarks/route.ts2
-rw-r--r--apps/web/app/api/v1/lists/[listId]/bookmarks/route.ts3
-rw-r--r--apps/web/app/api/v1/tags/[tagId]/bookmarks/route.ts3
-rw-r--r--apps/web/app/api/v1/utils/types.ts5
6 files changed, 17 insertions, 3 deletions
diff --git a/apps/web/app/api/bookmarks/export/route.tsx b/apps/web/app/api/bookmarks/export/route.tsx
index 4e04757f..669fb1c7 100644
--- a/apps/web/app/api/bookmarks/export/route.tsx
+++ b/apps/web/app/api/bookmarks/export/route.tsx
@@ -13,6 +13,7 @@ export async function GET(request: Request) {
const req = {
limit: MAX_NUM_BOOKMARKS_PER_PAGE,
useCursorV2: true,
+ includeContent: true,
};
let resp = await api.bookmarks.getBookmarks(req);
diff --git a/apps/web/app/api/v1/bookmarks/[bookmarkId]/route.ts b/apps/web/app/api/v1/bookmarks/[bookmarkId]/route.ts
index db78f17c..fa551894 100644
--- a/apps/web/app/api/v1/bookmarks/[bookmarkId]/route.ts
+++ b/apps/web/app/api/v1/bookmarks/[bookmarkId]/route.ts
@@ -3,6 +3,8 @@ import { buildHandler } from "@/app/api/v1/utils/handler";
import { zUpdateBookmarksRequestSchema } from "@karakeep/shared/types/bookmarks";
+import { zGetBookmarkSearchParamsSchema } from "../../utils/types";
+
export const dynamic = "force-dynamic";
export const GET = (
@@ -11,9 +13,11 @@ export const GET = (
) =>
buildHandler({
req,
- handler: async ({ api }) => {
+ searchParamsSchema: zGetBookmarkSearchParamsSchema,
+ handler: async ({ api, searchParams }) => {
const bookmark = await api.bookmarks.getBookmark({
bookmarkId: params.bookmarkId,
+ includeContent: searchParams.includeContent,
});
return { status: 200, resp: bookmark };
},
diff --git a/apps/web/app/api/v1/bookmarks/route.ts b/apps/web/app/api/v1/bookmarks/route.ts
index 7b6954c6..1605d2b5 100644
--- a/apps/web/app/api/v1/bookmarks/route.ts
+++ b/apps/web/app/api/v1/bookmarks/route.ts
@@ -16,6 +16,8 @@ export const GET = (req: NextRequest) =>
.object({
favourited: zStringBool.optional(),
archived: zStringBool.optional(),
+ // TODO: Change the default to false in a couple of releases.
+ includeContent: zStringBool.optional().default("true"),
})
.and(zPagination),
handler: async ({ api, searchParams }) => {
diff --git a/apps/web/app/api/v1/lists/[listId]/bookmarks/route.ts b/apps/web/app/api/v1/lists/[listId]/bookmarks/route.ts
index 72d4aa5f..3977413a 100644
--- a/apps/web/app/api/v1/lists/[listId]/bookmarks/route.ts
+++ b/apps/web/app/api/v1/lists/[listId]/bookmarks/route.ts
@@ -1,13 +1,14 @@
import { NextRequest } from "next/server";
import { buildHandler } from "@/app/api/v1/utils/handler";
import { adaptPagination, zPagination } from "@/app/api/v1/utils/pagination";
+import { zGetBookmarkSearchParamsSchema } from "@/app/api/v1/utils/types";
export const dynamic = "force-dynamic";
export const GET = (req: NextRequest, params: { params: { listId: string } }) =>
buildHandler({
req,
- searchParamsSchema: zPagination,
+ searchParamsSchema: zPagination.and(zGetBookmarkSearchParamsSchema),
handler: async ({ api, searchParams }) => {
const bookmarks = await api.bookmarks.getBookmarks({
listId: params.params.listId,
diff --git a/apps/web/app/api/v1/tags/[tagId]/bookmarks/route.ts b/apps/web/app/api/v1/tags/[tagId]/bookmarks/route.ts
index 98133ec7..cfc0af51 100644
--- a/apps/web/app/api/v1/tags/[tagId]/bookmarks/route.ts
+++ b/apps/web/app/api/v1/tags/[tagId]/bookmarks/route.ts
@@ -1,6 +1,7 @@
import { NextRequest } from "next/server";
import { buildHandler } from "@/app/api/v1/utils/handler";
import { adaptPagination, zPagination } from "@/app/api/v1/utils/pagination";
+import { zGetBookmarkSearchParamsSchema } from "@/app/api/v1/utils/types";
export const dynamic = "force-dynamic";
@@ -10,7 +11,7 @@ export const GET = (
) =>
buildHandler({
req,
- searchParamsSchema: zPagination,
+ searchParamsSchema: zPagination.and(zGetBookmarkSearchParamsSchema),
handler: async ({ api, searchParams }) => {
const bookmarks = await api.bookmarks.getBookmarks({
tagId: params.tagId,
diff --git a/apps/web/app/api/v1/utils/types.ts b/apps/web/app/api/v1/utils/types.ts
index c0e20dff..f0fe6231 100644
--- a/apps/web/app/api/v1/utils/types.ts
+++ b/apps/web/app/api/v1/utils/types.ts
@@ -4,3 +4,8 @@ export const zStringBool = z
.string()
.refine((val) => val === "true" || val === "false", "Must be true or false")
.transform((val) => val === "true");
+
+export const zGetBookmarkSearchParamsSchema = z.object({
+ // TODO: Change the default to false in a couple of releases.
+ includeContent: zStringBool.optional().default("true"),
+});