aboutsummaryrefslogtreecommitdiffstats
path: root/packages/trpc
diff options
context:
space:
mode:
authorMohamedBassem <me@mbassem.com>2024-03-31 16:34:52 +0100
committerMohamedBassem <me@mbassem.com>2024-03-31 19:27:25 +0100
commitdc6e0eab70421749faaa9a802d66c1901f3e9b50 (patch)
treed0f7c5623fc1ce1c11c199f794009c613d5408eb /packages/trpc
parentc0e2bdc01366f4a8878ffb373527d786e163a19b (diff)
downloadkarakeep-dc6e0eab70421749faaa9a802d66c1901f3e9b50.tar.zst
feature: Add support deleting tags
Diffstat (limited to 'packages/trpc')
-rw-r--r--packages/trpc/routers/tags.ts26
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({