diff options
| author | omnitrix <gaobowei.ovo@gmail.com> | 2025-04-16 16:18:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-16 15:18:04 +0100 |
| commit | 71a474268e6381f8630f6d906471c830342dc50f (patch) | |
| tree | e7dc62795d4b7aad1daeff78c94c12e63c38f3ef /packages/trpc/routers/lists.ts | |
| parent | dd990b51f3f85f70298a9b437b16ee7bbb406d24 (diff) | |
| download | karakeep-71a474268e6381f8630f6d906471c830342dc50f.tar.zst | |
feat(web): Add support for merging lists (#1231)
* feat: Support list merging
* some fixes
* move @hoarder to @karakeep
---------
Co-authored-by: Mohamed Bassem <me@mbassem.com>
Diffstat (limited to 'packages/trpc/routers/lists.ts')
| -rw-r--r-- | packages/trpc/routers/lists.ts | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/packages/trpc/routers/lists.ts b/packages/trpc/routers/lists.ts index f988eb8b..12960316 100644 --- a/packages/trpc/routers/lists.ts +++ b/packages/trpc/routers/lists.ts @@ -4,6 +4,7 @@ import { z } from "zod"; import { zBookmarkListSchema, zEditBookmarkListSchemaWithValidation, + zMergeListSchema, zNewBookmarkListSchema, } from "@karakeep/shared/types/lists"; @@ -39,6 +40,18 @@ export const listsAppRouter = router({ .mutation(async ({ input, ctx }) => { return await ctx.list.update(input); }), + merge: authedProcedure + .input(zMergeListSchema) + .mutation(async ({ input, ctx }) => { + const [sourceList, targetList] = await Promise.all([ + List.fromId(ctx, input.sourceId), + List.fromId(ctx, input.targetId), + ]); + return await sourceList.mergeInto( + targetList, + input.deleteSourceAfterMerge, + ); + }), delete: authedProcedure .input( z.object({ |
