aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorSalvatore Gentile <884093+SalGnt@users.noreply.github.com>2025-05-25 00:56:20 +0200
committerGitHub <noreply@github.com>2025-05-24 23:56:20 +0100
commit8a927e964ae4c601910ab5f7c8d3d2b25e335988 (patch)
tree0029019d8580b680bd23a39f4db13c786a3897b1 /packages
parent37c18b89ddcdae9010fc00bb7ef717c60bc01df9 (diff)
downloadkarakeep-8a927e964ae4c601910ab5f7c8d3d2b25e335988.tar.zst
feat: Add "deleted" webhook event (#1464)
Diffstat (limited to 'packages')
-rw-r--r--packages/db/schema.ts2
-rw-r--r--packages/shared/queues.ts2
-rw-r--r--packages/shared/types/webhooks.ts1
-rw-r--r--packages/trpc/routers/bookmarks.ts1
4 files changed, 4 insertions, 2 deletions
diff --git a/packages/db/schema.ts b/packages/db/schema.ts
index 0e8167c7..5c109b76 100644
--- a/packages/db/schema.ts
+++ b/packages/db/schema.ts
@@ -419,7 +419,7 @@ export const webhooksTable = sqliteTable(
.references(() => users.id, { onDelete: "cascade" }),
events: text("events", { mode: "json" })
.notNull()
- .$type<("created" | "edited" | "crawled" | "ai tagged")[]>(),
+ .$type<("created" | "edited" | "crawled" | "ai tagged" | "deleted")[]>(),
token: text("token"),
},
(bl) => [index("webhooks_userId_idx").on(bl.userId)],
diff --git a/packages/shared/queues.ts b/packages/shared/queues.ts
index bbf69428..a434414c 100644
--- a/packages/shared/queues.ts
+++ b/packages/shared/queues.ts
@@ -172,7 +172,7 @@ export const AssetPreprocessingQueue =
// Webhook worker
export const zWebhookRequestSchema = z.object({
bookmarkId: z.string(),
- operation: z.enum(["crawled", "created", "edited", "ai tagged"]),
+ operation: z.enum(["crawled", "created", "edited", "ai tagged", "deleted"]),
});
export type ZWebhookRequest = z.infer<typeof zWebhookRequestSchema>;
export const WebhookQueue = new SqliteQueue<ZWebhookRequest>(
diff --git a/packages/shared/types/webhooks.ts b/packages/shared/types/webhooks.ts
index 819951ce..75980b70 100644
--- a/packages/shared/types/webhooks.ts
+++ b/packages/shared/types/webhooks.ts
@@ -8,6 +8,7 @@ export const zWebhookEventSchema = z.enum([
"edited",
"crawled",
"ai tagged",
+ "deleted",
]);
export type ZWebhookEvent = z.infer<typeof zWebhookEventSchema>;
diff --git a/packages/trpc/routers/bookmarks.ts b/packages/trpc/routers/bookmarks.ts
index de5bd4c2..29a77d8c 100644
--- a/packages/trpc/routers/bookmarks.ts
+++ b/packages/trpc/routers/bookmarks.ts
@@ -660,6 +660,7 @@ export const bookmarksAppRouter = router({
),
);
await triggerSearchDeletion(input.bookmarkId);
+ await triggerWebhook(input.bookmarkId, "deleted");
if (deleted.changes > 0 && bookmark) {
await cleanupAssetForBookmark({
asset: bookmark.asset,