diff options
| author | Mohamed Bassem <me@mbassem.com> | 2024-10-20 14:58:16 +0000 |
|---|---|---|
| committer | Mohamed Bassem <me@mbassem.com> | 2024-10-20 14:58:16 +0000 |
| commit | 10dcf2e7429601fcbde42e3d10c46c074dc9a28a (patch) | |
| tree | fcbdbc9abc596fc4e82b26a76294c522394ae448 /packages | |
| parent | f5fd3c48b7f3de18bcacd584c8d816250fbcad19 (diff) | |
| download | karakeep-10dcf2e7429601fcbde42e3d10c46c074dc9a28a.tar.zst | |
feature: Add APIs to create new lists and bookmarks
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/shared/types/lists.ts | 9 | ||||
| -rw-r--r-- | packages/trpc/routers/lists.ts | 14 |
2 files changed, 13 insertions, 10 deletions
diff --git a/packages/shared/types/lists.ts b/packages/shared/types/lists.ts index e9d7eca0..d2041907 100644 --- a/packages/shared/types/lists.ts +++ b/packages/shared/types/lists.ts @@ -1,5 +1,14 @@ import { z } from "zod"; +export const zNewBookmarkListSchema = z.object({ + name: z + .string() + .min(1, "List name can't be empty") + .max(40, "List name is at most 40 chars"), + icon: z.string(), + parentId: z.string().nullish(), +}); + export const zBookmarkListSchema = z.object({ id: z.string(), name: z.string(), diff --git a/packages/trpc/routers/lists.ts b/packages/trpc/routers/lists.ts index a69d1f24..0cc937b1 100644 --- a/packages/trpc/routers/lists.ts +++ b/packages/trpc/routers/lists.ts @@ -5,21 +5,15 @@ import { z } from "zod"; import { SqliteError } from "@hoarder/db"; import { bookmarkLists, bookmarksInLists } from "@hoarder/db/schema"; -import { zBookmarkListSchema } from "@hoarder/shared/types/lists"; +import { + zBookmarkListSchema, + zNewBookmarkListSchema, +} from "@hoarder/shared/types/lists"; import type { Context } from "../index"; import { authedProcedure, router } from "../index"; import { ensureBookmarkOwnership } from "./bookmarks"; -const zNewBookmarkListSchema = z.object({ - name: z - .string() - .min(1, "List name can't be empty") - .max(40, "List name is at most 40 chars"), - icon: z.string(), - parentId: z.string().nullish(), -}); - export const ensureListOwnership = experimental_trpcMiddleware<{ ctx: Context; input: { listId: string }; |
