Files
sign/packages/lib/server-only/webhooks/create-webhook.ts

46 lines
792 B
TypeScript
Raw Normal View History

2025-01-02 15:33:37 +11:00
import type { WebhookTriggerEvents } from '@prisma/client';
2024-02-09 16:07:33 +02:00
import { prisma } from '@documenso/prisma';
export interface CreateWebhookOptions {
webhookUrl: string;
eventTriggers: WebhookTriggerEvents[];
secret: string | null;
enabled: boolean;
userId: number;
2024-02-27 16:56:32 +11:00
teamId?: number;
2024-02-09 16:07:33 +02:00
}
export const createWebhook = async ({
webhookUrl,
eventTriggers,
secret,
enabled,
userId,
2024-02-27 16:56:32 +11:00
teamId,
2024-02-09 16:07:33 +02:00
}: CreateWebhookOptions) => {
2024-02-27 16:56:32 +11:00
if (teamId) {
await prisma.team.findFirstOrThrow({
where: {
id: teamId,
members: {
some: {
userId,
},
},
},
});
}
2024-02-09 16:07:33 +02:00
return await prisma.webhook.create({
data: {
webhookUrl,
eventTriggers,
secret,
enabled,
userId,
2024-02-27 16:56:32 +11:00
teamId,
2024-02-09 16:07:33 +02:00
},
});
};