Files
esign/packages/lib/server-only/webhooks/get-all-webhooks-by-event-trigger.ts
zooqueen fb4e3df0e3 rename: @hanzo/sign-* → @hanzo/esign-* (full eSign brand consistency)
The product is branded Hanzo eSign (esign.hanzo.ai, repo hanzoai/esign).
Rename all workspace packages @hanzo/sign-* → @hanzo/esign-* (1052 files)
and align docker/Dockerfile turbo --scope/--filter to the actual remix
package name @hanzo/esign (was a pre-existing mismatch with -remix that
broke the build). Protected deps (@hanzo/insights, @hanzo/logo) untouched.
2026-06-21 19:56:09 -07:00

34 lines
993 B
TypeScript

import type { WebhookTriggerEvents } from '@prisma/client';
import { prisma } from '@hanzo/esign-prisma';
import { buildTeamWhereQuery } from '../../utils/teams';
export type GetAllWebhooksByEventTriggerOptions = {
event: WebhookTriggerEvents;
userId: number;
teamId: number;
};
export const getAllWebhooksByEventTrigger = async ({
event,
userId,
teamId,
}: GetAllWebhooksByEventTriggerOptions) => {
// `eventTriggers` is a JSON-encoded list in SQLite, so it can't be filtered
// with a Postgres `has` array predicate. The enabled-webhook set for a team
// is small; fetch it and filter on the decoded array (the client extension
// hands `eventTriggers` back as a real list). See @hanzo/esign-prisma/json-array.
const webhooks = await prisma.webhook.findMany({
where: {
enabled: true,
team: buildTeamWhereQuery({
teamId,
userId,
}),
},
});
return webhooks.filter((webhook) => webhook.eventTriggers.includes(event));
};