feat: send email when recipient is done signing

This commit is contained in:
Ephraim Atta-Duncan
2023-09-07 19:58:48 +00:00
parent ff957a2f82
commit dbbe17a0a8
2 changed files with 39 additions and 0 deletions

View File

@ -4,6 +4,7 @@ import { prisma } from '@documenso/prisma';
import { DocumentStatus, SigningStatus } from '@documenso/prisma/client';
import { sealDocument } from './seal-document';
import { sendPendingEmail } from './send-recipient-signed-email';
export type CompleteDocumentWithTokenOptions = {
token: string;
@ -69,6 +70,8 @@ export const completeDocumentWithToken = async ({
},
});
await sendPendingEmail({ document, recipient });
const documents = await prisma.document.updateMany({
where: {
id: document.id,

View File

@ -0,0 +1,36 @@
import { createElement } from 'react';
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentPendingEmailTemplate } from '@documenso/email/templates/document-pending';
import { Document, Recipient } from '@documenso/prisma/client';
export interface SendPendingEmailOptions {
document: Document;
recipient: Recipient;
}
export const sendPendingEmail = async ({ document, recipient }: SendPendingEmailOptions) => {
const { email, name } = recipient;
const assetBaseUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000';
const template = createElement(DocumentPendingEmailTemplate, {
documentName: document.title,
assetBaseUrl,
});
await mailer.sendMail({
to: {
address: email,
name,
},
from: {
name: process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso',
address: process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com',
},
subject: 'You are done signing.',
html: render(template),
text: render(template, { plainText: true }),
});
};