Files
documenso/packages/lib/server-only/queue/job.ts
Ephraim Atta-Duncan 53abb8f00b feat: add job queue
2024-04-07 18:31:01 +00:00

35 lines
757 B
TypeScript

import type { WorkHandler } from 'pg-boss';
import { initQueue } from '.';
import {
type SendDocumentOptions as SendCompletedDocumentOptions,
sendCompletedEmail,
} from '../document/send-completed-email';
type JobOptions = {
'send-completed-email': SendCompletedDocumentOptions;
};
export const jobHandlers: {
[K in keyof JobOptions]: WorkHandler<JobOptions[K]>;
} = {
'send-completed-email': async ({ data }) => {
await sendCompletedEmail({
documentId: data.documentId,
requestMetadata: data.requestMetadata,
});
},
};
export const queueJob = async ({
job,
args,
}: {
job: keyof JobOptions;
args?: JobOptions[keyof JobOptions];
}) => {
const queue = await initQueue();
await queue.send(job, args ?? {});
};