Files
documenso/packages/lib/jobs/definitions/send-confirmation-email.ts
2024-06-13 15:24:51 +10:00

48 lines
1.2 KiB
TypeScript

import { z } from 'zod';
import { sendConfirmationToken } from '../../server-only/user/send-confirmation-token';
import type { JobClient } from '../client/client';
export const registerSendConfirmationEmailJob = (client: JobClient) => {
client.defineJob({
id: 'send.confirmation.email',
name: 'Send Confirmation Email',
version: '1.0.0',
trigger: {
name: 'send.confirmation.email',
schema: z.object({
email: z.string().email(),
force: z.boolean().optional(),
}),
},
handler: async ({ payload, io }) => {
console.log('---- start job ----');
// eslint-disable-next-line @typescript-eslint/require-await
const result = await io.runTask('console-log-1', async () => {
console.log('Task 1');
return 5;
});
console.log({ result });
console.log('always runs');
// eslint-disable-next-line @typescript-eslint/require-await
await io.runTask('console-log-2', async () => {
await Promise.resolve(null);
throw new Error('dang2');
});
console.log('---- end job ----');
// throw new Error('dang')
await sendConfirmationToken({
email: payload.email,
force: payload.force,
});
},
});
};