feat: migrate templates and documents to envelope model

This commit is contained in:
David Nguyen
2025-09-11 18:23:38 +10:00
parent eec2307634
commit bf89bc781b
234 changed files with 8677 additions and 6054 deletions

View File

@ -1,5 +1,9 @@
import { DocumentStatus, EnvelopeType } from '@prisma/client';
import { prisma } from '@documenso/prisma';
import { mapSecondaryIdToDocumentId } from '../../utils/envelope';
export type GetDocumentByAccessTokenOptions = {
token: string;
};
@ -9,30 +13,54 @@ export const getDocumentByAccessToken = async ({ token }: GetDocumentByAccessTok
throw new Error('Missing token');
}
const result = await prisma.document.findFirstOrThrow({
const result = await prisma.envelope.findFirstOrThrow({
where: {
type: EnvelopeType.DOCUMENT,
status: DocumentStatus.COMPLETED,
qrToken: token,
},
// Do not provide extra information that is not needed.
select: {
id: true,
secondaryId: true,
title: true,
completedAt: true,
documentData: {
team: {
select: {
id: true,
type: true,
data: true,
initialData: true,
url: true,
},
},
documentMeta: {
envelopeItems: {
select: {
password: true,
documentData: {
select: {
id: true,
type: true,
data: true,
initialData: true,
},
},
},
},
_count: {
select: {
recipients: true,
},
},
recipients: true,
},
});
return result;
// Todo: Envelopes
if (!result.envelopeItems[0].documentData) {
throw new Error('Missing document data');
}
return {
id: mapSecondaryIdToDocumentId(result.secondaryId),
title: result.title,
completedAt: result.completedAt,
documentData: result.envelopeItems[0].documentData,
recipientCount: result._count.recipients,
documentTeamUrl: result.team.url,
};
};