mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 16:23:06 +10:00
feat: migrate webhook execution to background jobs (#1694)
This commit is contained in:
34
packages/lib/jobs/definitions/internal/execute-webhook.ts
Normal file
34
packages/lib/jobs/definitions/internal/execute-webhook.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import { WebhookTriggerEvents } from '@prisma/client';
|
||||
import { z } from 'zod';
|
||||
|
||||
import { ZRequestMetadataSchema } from '../../../universal/extract-request-metadata';
|
||||
import { type JobDefinition } from '../../client/_internal/job';
|
||||
|
||||
const EXECUTE_WEBHOOK_JOB_DEFINITION_ID = 'internal.execute-webhook';
|
||||
|
||||
const EXECUTE_WEBHOOK_JOB_DEFINITION_SCHEMA = z.object({
|
||||
event: z.nativeEnum(WebhookTriggerEvents),
|
||||
webhookId: z.string(),
|
||||
data: z.unknown(),
|
||||
requestMetadata: ZRequestMetadataSchema.optional(),
|
||||
});
|
||||
|
||||
export type TExecuteWebhookJobDefinition = z.infer<typeof EXECUTE_WEBHOOK_JOB_DEFINITION_SCHEMA>;
|
||||
|
||||
export const EXECUTE_WEBHOOK_JOB_DEFINITION = {
|
||||
id: EXECUTE_WEBHOOK_JOB_DEFINITION_ID,
|
||||
name: 'Execute Webhook',
|
||||
version: '1.0.0',
|
||||
trigger: {
|
||||
name: EXECUTE_WEBHOOK_JOB_DEFINITION_ID,
|
||||
schema: EXECUTE_WEBHOOK_JOB_DEFINITION_SCHEMA,
|
||||
},
|
||||
handler: async ({ payload, io }) => {
|
||||
const handler = await import('./execute-webhook.handler');
|
||||
|
||||
await handler.run({ payload, io });
|
||||
},
|
||||
} as const satisfies JobDefinition<
|
||||
typeof EXECUTE_WEBHOOK_JOB_DEFINITION_ID,
|
||||
TExecuteWebhookJobDefinition
|
||||
>;
|
||||
Reference in New Issue
Block a user