aboutsummaryrefslogtreecommitdiffstats
path: root/packages/open-api/lib
diff options
context:
space:
mode:
authorxuatz <xzlow10@gmail.com>2025-05-19 00:18:58 +0900
committerGitHub <noreply@github.com>2025-05-18 16:18:58 +0100
commit4e06ea7bdbaaa196da5c3e2a755aeefb25cf4228 (patch)
tree1f9aab52078eaa485430cfc6e514c655da122ea5 /packages/open-api/lib
parent70d572096706cb2d7f5d3f29b51e6ba1d86578c6 (diff)
downloadkarakeep-4e06ea7bdbaaa196da5c3e2a755aeefb25cf4228.tar.zst
feat(api): enable ?sortOrder= for relevant resources (#1398)
* feat(api): enable `?sortOrder=` for relevant resources * fix tests
Diffstat (limited to 'packages/open-api/lib')
-rw-r--r--packages/open-api/lib/bookmarks.ts6
-rw-r--r--packages/open-api/lib/lists.ts15
-rw-r--r--packages/open-api/lib/tags.ts15
3 files changed, 30 insertions, 6 deletions
diff --git a/packages/open-api/lib/bookmarks.ts b/packages/open-api/lib/bookmarks.ts
index e344d656..8fb0eb8c 100644
--- a/packages/open-api/lib/bookmarks.ts
+++ b/packages/open-api/lib/bookmarks.ts
@@ -9,6 +9,7 @@ import {
zBareBookmarkSchema,
zManipulatedTagSchema,
zNewBookmarkRequestSchema,
+ zSortOrder,
zUpdateBookmarksRequestSchema,
} from "@karakeep/shared/types/bookmarks";
@@ -60,6 +61,10 @@ registry.registerPath({
.object({
archived: z.boolean().optional(),
favourited: z.boolean().optional(),
+ sortOrder: zSortOrder
+ .exclude(["relevance"])
+ .optional()
+ .default(zSortOrder.Enum.desc),
})
.merge(PaginationSchema)
.merge(IncludeContentSearchParamSchema),
@@ -87,6 +92,7 @@ registry.registerPath({
query: z
.object({
q: z.string(),
+ sortOrder: zSortOrder.optional().default(zSortOrder.Enum.relevance),
})
.merge(PaginationSchema)
.merge(IncludeContentSearchParamSchema),
diff --git a/packages/open-api/lib/lists.ts b/packages/open-api/lib/lists.ts
index ab07e425..992b96c4 100644
--- a/packages/open-api/lib/lists.ts
+++ b/packages/open-api/lib/lists.ts
@@ -4,6 +4,7 @@ import {
} from "@asteasolutions/zod-to-openapi";
import { z } from "zod";
+import { zSortOrder } from "@karakeep/shared/types/bookmarks";
import {
zBookmarkListSchema,
zEditBookmarkListSchema,
@@ -190,13 +191,21 @@ registry.registerPath({
registry.registerPath({
method: "get",
path: "/lists/{listId}/bookmarks",
- description: "Get the bookmarks in a list",
- summary: "Get a bookmarks in a list",
+ description: "Get bookmarks in the list",
+ summary: "Get bookmarks in the list",
tags: ["Lists"],
security: [{ [BearerAuth.name]: [] }],
request: {
params: z.object({ listId: ListIdSchema }),
- query: PaginationSchema.merge(IncludeContentSearchParamSchema),
+ query: z
+ .object({
+ sortOrder: zSortOrder
+ .exclude(["relevance"])
+ .optional()
+ .default(zSortOrder.Enum.desc),
+ })
+ .merge(PaginationSchema)
+ .merge(IncludeContentSearchParamSchema),
},
responses: {
200: {
diff --git a/packages/open-api/lib/tags.ts b/packages/open-api/lib/tags.ts
index c51e3b84..b8136741 100644
--- a/packages/open-api/lib/tags.ts
+++ b/packages/open-api/lib/tags.ts
@@ -4,6 +4,7 @@ import {
} from "@asteasolutions/zod-to-openapi";
import { z } from "zod";
+import { zSortOrder } from "@karakeep/shared/types/bookmarks";
import {
zGetTagResponseSchema,
zUpdateTagRequestSchema,
@@ -152,13 +153,21 @@ registry.registerPath({
registry.registerPath({
method: "get",
path: "/tags/{tagId}/bookmarks",
- description: "Get the bookmarks with the tag",
- summary: "Get a bookmarks with the tag",
+ description: "Get bookmarks with the tag",
+ summary: "Get bookmarks with the tag",
tags: ["Tags"],
security: [{ [BearerAuth.name]: [] }],
request: {
params: z.object({ tagId: TagIdSchema }),
- query: PaginationSchema.merge(IncludeContentSearchParamSchema),
+ query: z
+ .object({
+ sortOrder: zSortOrder
+ .exclude(["relevance"])
+ .optional()
+ .default(zSortOrder.Enum.desc),
+ })
+ .merge(PaginationSchema)
+ .merge(IncludeContentSearchParamSchema),
},
responses: {
200: {