diff options
| author | Mohamed Bassem <me@mbassem.com> | 2024-10-20 17:36:02 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2024-10-20 17:36:02 +0000 |
| commit | 3c1ec3aa2f7d64932fd26c8cbcb1aee1e57861bd (patch) | |
| tree | 34eceb016bec57c7c3b59315a210747cdf0c8f33 /packages/open-api/lib/pagination.ts | |
| parent | 4086c37b830c3c4141b37052e3c192a750470084 (diff) | |
| download | karakeep-3c1ec3aa2f7d64932fd26c8cbcb1aee1e57861bd.tar.zst | |
chore: Define hoarder's rest API in zod format
Diffstat (limited to 'packages/open-api/lib/pagination.ts')
| -rw-r--r-- | packages/open-api/lib/pagination.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/open-api/lib/pagination.ts b/packages/open-api/lib/pagination.ts new file mode 100644 index 00000000..fe98cd62 --- /dev/null +++ b/packages/open-api/lib/pagination.ts @@ -0,0 +1,24 @@ +import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi"; +import { z } from "zod"; + +import { zBookmarkSchema } from "@hoarder/shared/types/bookmarks"; + +extendZodWithOpenApi(z); + +export const BookmarkSchema = zBookmarkSchema.openapi("Bookmark"); + +export const PaginatedBookmarksSchema = z + .object({ + bookmarks: z.array(BookmarkSchema), + nextCursor: z.string().nullable(), + }) + .openapi("PaginatedBookmarks"); + +export const CursorSchema = z.string().openapi("Cursor"); + +export const PaginationSchema = z + .object({ + limit: z.number().optional(), + cursor: CursorSchema.optional(), + }) + .openapi("Pagination"); |
