mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
133 lines
3.1 KiB
TypeScript
133 lines
3.1 KiB
TypeScript
import { createWebhook } from '@documenso/lib/server-only/webhooks/create-webhook';
|
|
import { deleteWebhookById } from '@documenso/lib/server-only/webhooks/delete-webhook-by-id';
|
|
import { editWebhook } from '@documenso/lib/server-only/webhooks/edit-webhook';
|
|
import { getWebhookById } from '@documenso/lib/server-only/webhooks/get-webhook-by-id';
|
|
import { getWebhooksByTeamId } from '@documenso/lib/server-only/webhooks/get-webhooks-by-team-id';
|
|
import { triggerTestWebhook } from '@documenso/lib/server-only/webhooks/trigger-test-webhook';
|
|
|
|
import { authenticatedProcedure, router } from '../trpc';
|
|
import {
|
|
ZCreateWebhookRequestSchema,
|
|
ZDeleteWebhookRequestSchema,
|
|
ZEditWebhookRequestSchema,
|
|
ZGetTeamWebhooksRequestSchema,
|
|
ZGetWebhookByIdRequestSchema,
|
|
ZTriggerTestWebhookRequestSchema,
|
|
} from './schema';
|
|
|
|
export const webhookRouter = router({
|
|
getTeamWebhooks: authenticatedProcedure
|
|
.input(ZGetTeamWebhooksRequestSchema)
|
|
.query(async ({ ctx, input }) => {
|
|
const { teamId } = input;
|
|
|
|
ctx.logger.info({
|
|
input: {
|
|
teamId,
|
|
},
|
|
});
|
|
|
|
return await getWebhooksByTeamId(teamId, ctx.user.id);
|
|
}),
|
|
|
|
getWebhookById: authenticatedProcedure
|
|
.input(ZGetWebhookByIdRequestSchema)
|
|
.query(async ({ input, ctx }) => {
|
|
const { id, teamId } = input;
|
|
|
|
ctx.logger.info({
|
|
input: {
|
|
id,
|
|
teamId,
|
|
},
|
|
});
|
|
|
|
return await getWebhookById({
|
|
id,
|
|
userId: ctx.user.id,
|
|
teamId,
|
|
});
|
|
}),
|
|
|
|
createWebhook: authenticatedProcedure
|
|
.input(ZCreateWebhookRequestSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
const { enabled, eventTriggers, secret, webhookUrl, teamId } = input;
|
|
|
|
ctx.logger.info({
|
|
input: {
|
|
teamId,
|
|
},
|
|
});
|
|
|
|
return await createWebhook({
|
|
enabled,
|
|
secret,
|
|
webhookUrl,
|
|
eventTriggers,
|
|
teamId,
|
|
userId: ctx.user.id,
|
|
});
|
|
}),
|
|
|
|
deleteWebhook: authenticatedProcedure
|
|
.input(ZDeleteWebhookRequestSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
const { id, teamId } = input;
|
|
|
|
ctx.logger.info({
|
|
input: {
|
|
id,
|
|
teamId,
|
|
},
|
|
});
|
|
|
|
return await deleteWebhookById({
|
|
id,
|
|
teamId,
|
|
userId: ctx.user.id,
|
|
});
|
|
}),
|
|
|
|
editWebhook: authenticatedProcedure
|
|
.input(ZEditWebhookRequestSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
const { id, teamId, ...data } = input;
|
|
|
|
ctx.logger.info({
|
|
input: {
|
|
id,
|
|
teamId,
|
|
},
|
|
});
|
|
|
|
return await editWebhook({
|
|
id,
|
|
data,
|
|
userId: ctx.user.id,
|
|
teamId,
|
|
});
|
|
}),
|
|
|
|
testWebhook: authenticatedProcedure
|
|
.input(ZTriggerTestWebhookRequestSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
const { id, event, teamId } = input;
|
|
|
|
ctx.logger.info({
|
|
input: {
|
|
id,
|
|
event,
|
|
teamId,
|
|
},
|
|
});
|
|
|
|
return await triggerTestWebhook({
|
|
id,
|
|
event,
|
|
userId: ctx.user.id,
|
|
teamId,
|
|
});
|
|
}),
|
|
});
|