aboutsummaryrefslogtreecommitdiffstats
path: root/packages/open-api/lib/pagination.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2024-10-20 17:36:02 +0000
committerMohamed Bassem <me@mbassem.com>2024-10-20 17:36:02 +0000
commit3c1ec3aa2f7d64932fd26c8cbcb1aee1e57861bd (patch)
tree34eceb016bec57c7c3b59315a210747cdf0c8f33 /packages/open-api/lib/pagination.ts
parent4086c37b830c3c4141b37052e3c192a750470084 (diff)
downloadkarakeep-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.ts24
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");