diff options
| author | xuatz <xzlow10@gmail.com> | 2025-05-19 00:18:58 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-18 16:18:58 +0100 |
| commit | 4e06ea7bdbaaa196da5c3e2a755aeefb25cf4228 (patch) | |
| tree | 1f9aab52078eaa485430cfc6e514c655da122ea5 /packages/open-api/lib | |
| parent | 70d572096706cb2d7f5d3f29b51e6ba1d86578c6 (diff) | |
| download | karakeep-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.ts | 6 | ||||
| -rw-r--r-- | packages/open-api/lib/lists.ts | 15 | ||||
| -rw-r--r-- | packages/open-api/lib/tags.ts | 15 |
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: { |
