mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 15:53:02 +10:00
fix: dirty type safe job definitions
This commit is contained in:
@ -3,16 +3,20 @@ import { z } from 'zod';
|
||||
import { sendConfirmationToken } from '../../server-only/user/send-confirmation-token';
|
||||
import type { JobDefinition } from '../client/_internal/job';
|
||||
|
||||
const SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_ID = 'send.signup.confirmation.email';
|
||||
|
||||
const SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_SCHEMA = z.object({
|
||||
email: z.string().email(),
|
||||
force: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export const SEND_CONFIRMATION_EMAIL_JOB_DEFINITION = {
|
||||
id: 'send.signup.confirmation.email',
|
||||
id: SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_ID,
|
||||
name: 'Send Confirmation Email',
|
||||
version: '1.0.0',
|
||||
trigger: {
|
||||
name: 'send.signup.confirmation.email',
|
||||
schema: z.object({
|
||||
email: z.string().email(),
|
||||
force: z.boolean().optional(),
|
||||
}),
|
||||
name: SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_ID,
|
||||
schema: SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_SCHEMA,
|
||||
},
|
||||
handler: async ({ payload }) => {
|
||||
await sendConfirmationToken({
|
||||
@ -20,4 +24,7 @@ export const SEND_CONFIRMATION_EMAIL_JOB_DEFINITION = {
|
||||
force: payload.force,
|
||||
});
|
||||
},
|
||||
} as const satisfies JobDefinition;
|
||||
} as const satisfies JobDefinition<
|
||||
typeof SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_ID,
|
||||
z.infer<typeof SEND_CONFIRMATION_EMAIL_JOB_DEFINITION_SCHEMA>
|
||||
>;
|
||||
|
||||
@ -23,20 +23,24 @@ import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs';
|
||||
import { ZRequestMetadataSchema } from '../../universal/extract-request-metadata';
|
||||
import { createDocumentAuditLogData } from '../../utils/document-audit-logs';
|
||||
import { renderCustomEmailTemplate } from '../../utils/render-custom-email-template';
|
||||
import type { JobDefinition } from '../client/_internal/job';
|
||||
import { type JobDefinition } from '../client/_internal/job';
|
||||
|
||||
const SEND_SIGNING_EMAIL_JOB_DEFINITION_ID = 'send.signing.requested.email';
|
||||
|
||||
const SEND_SIGNING_EMAIL_JOB_DEFINITION_SCHEMA = z.object({
|
||||
userId: z.number(),
|
||||
documentId: z.number(),
|
||||
recipientId: z.number(),
|
||||
requestMetadata: ZRequestMetadataSchema.optional(),
|
||||
});
|
||||
|
||||
export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
|
||||
id: 'send.signing.requested.email',
|
||||
id: SEND_SIGNING_EMAIL_JOB_DEFINITION_ID,
|
||||
name: 'Send Signing Email',
|
||||
version: '1.0.0',
|
||||
trigger: {
|
||||
name: 'send.signing.requested.email',
|
||||
schema: z.object({
|
||||
userId: z.number(),
|
||||
documentId: z.number(),
|
||||
recipientId: z.number(),
|
||||
requestMetadata: ZRequestMetadataSchema.optional(),
|
||||
}),
|
||||
name: SEND_SIGNING_EMAIL_JOB_DEFINITION_ID,
|
||||
schema: SEND_SIGNING_EMAIL_JOB_DEFINITION_SCHEMA,
|
||||
},
|
||||
handler: async ({ payload, io }) => {
|
||||
const { userId, documentId, recipientId, requestMetadata } = payload;
|
||||
@ -161,4 +165,7 @@ export const SEND_SIGNING_EMAIL_JOB_DEFINITION = {
|
||||
});
|
||||
});
|
||||
},
|
||||
} as const satisfies JobDefinition;
|
||||
} as const satisfies JobDefinition<
|
||||
typeof SEND_SIGNING_EMAIL_JOB_DEFINITION_ID,
|
||||
z.infer<typeof SEND_SIGNING_EMAIL_JOB_DEFINITION_SCHEMA>
|
||||
>;
|
||||
|
||||
Reference in New Issue
Block a user