mirror of
https://github.com/documenso/documenso.git
synced 2025-11-19 03:01:59 +10:00
58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
import { prisma } from '@documenso/prisma';
|
|
import { SigningStatus } from '@documenso/prisma/client';
|
|
|
|
import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs';
|
|
import { createDocumentAuditLogData } from '../../utils/document-audit-logs';
|
|
|
|
export const updateExpiredRecipients = async (documentId: number) => {
|
|
const now = new Date();
|
|
|
|
const expiredRecipients = await prisma.recipient.findMany({
|
|
where: {
|
|
documentId,
|
|
expired: {
|
|
lt: now,
|
|
},
|
|
signingStatus: {
|
|
not: SigningStatus.EXPIRED,
|
|
},
|
|
},
|
|
});
|
|
|
|
if (expiredRecipients.length > 0) {
|
|
await prisma.recipient.updateMany({
|
|
where: {
|
|
id: {
|
|
in: expiredRecipients.map((recipient) => recipient.id),
|
|
},
|
|
},
|
|
data: {
|
|
signingStatus: SigningStatus.EXPIRED,
|
|
},
|
|
});
|
|
|
|
await Promise.all(
|
|
expiredRecipients.map(async (recipient) =>
|
|
prisma.documentAuditLog.create({
|
|
data: createDocumentAuditLogData({
|
|
type: DOCUMENT_AUDIT_LOG_TYPE.DOCUMENT_RECIPIENT_EXPIRED,
|
|
documentId,
|
|
user: {
|
|
name: recipient.name,
|
|
email: recipient.email,
|
|
},
|
|
data: {
|
|
recipientEmail: recipient.email,
|
|
recipientName: recipient.name,
|
|
recipientId: recipient.id,
|
|
recipientRole: recipient.role,
|
|
},
|
|
}),
|
|
}),
|
|
),
|
|
);
|
|
}
|
|
|
|
return expiredRecipients;
|
|
};
|