feat: update recipient expiry handling

This commit is contained in:
Ephraim Atta-Duncan
2024-11-17 22:57:40 +00:00
parent ba627e22c5
commit 2d7988f484
6 changed files with 90 additions and 5 deletions

View File

@ -14,8 +14,8 @@ import type { RequestMetadata } from '@documenso/lib/universal/extract-request-m
import { createDocumentAuditLogData } from '@documenso/lib/utils/document-audit-logs';
import { renderCustomEmailTemplate } from '@documenso/lib/utils/render-custom-email-template';
import { prisma } from '@documenso/prisma';
import { DocumentStatus, RecipientRole, SigningStatus } from '@documenso/prisma/client';
import type { Prisma } from '@documenso/prisma/client';
import { DocumentStatus, RecipientRole, SigningStatus } from '@documenso/prisma/client';
import { getI18nInstance } from '../../client-only/providers/i18n.server';
import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
@ -106,6 +106,23 @@ export const resendDocument = async ({
return;
}
let newExpiryDate: Date | null = null;
if (recipient.expired) {
const durationInMs = recipient.expired.getTime() - document.updatedAt.getTime();
newExpiryDate = new Date(Date.now() + durationInMs);
await prisma.recipient.update({
where: { id: recipient.id },
data: {
expired: newExpiryDate,
signingStatus:
recipient.signingStatus === SigningStatus.EXPIRED
? SigningStatus.NOT_SIGNED
: recipient.signingStatus,
},
});
}
const i18n = await getI18nInstance(document.documentMeta?.language);
const recipientEmailType = RECIPIENT_ROLE_TO_EMAIL_TYPE[recipient.role];