diff options
| author | MohamedBassem <me@mbassem.com> | 2024-03-31 16:34:52 +0100 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-03-31 19:27:25 +0100 |
| commit | dc6e0eab70421749faaa9a802d66c1901f3e9b50 (patch) | |
| tree | d0f7c5623fc1ce1c11c199f794009c613d5408eb /packages | |
| parent | c0e2bdc01366f4a8878ffb373527d786e163a19b (diff) | |
| download | karakeep-dc6e0eab70421749faaa9a802d66c1901f3e9b50.tar.zst | |
feature: Add support deleting tags
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/trpc/routers/tags.ts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/packages/trpc/routers/tags.ts b/packages/trpc/routers/tags.ts index 211c3633..f6ce752d 100644 --- a/packages/trpc/routers/tags.ts +++ b/packages/trpc/routers/tags.ts @@ -104,6 +104,32 @@ export const tagsAppRouter = router({ bookmarks: res.flatMap((t) => (t.bookmarkId ? [t.bookmarkId] : [])), }; }), + delete: authedProcedure + .input( + z + .object({ + tagId: z.string(), + }) + .or( + z.object({ + tagName: z.string(), + }), + ), + ) + .use(ensureTagOwnership) + .mutation(async ({ input, ctx }) => { + const res = await ctx.db + .delete(bookmarkTags) + .where( + and( + conditionFromInput(input, ctx.user.id), + eq(bookmarkTags.userId, ctx.user.id), + ), + ); + if (res.changes == 0) { + throw new TRPCError({ code: "NOT_FOUND" }); + } + }), list: authedProcedure .output( z.object({ |
