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,7 +1,10 @@
import { EnvelopeType } from '@prisma/client';
import { prisma } from '@documenso/prisma';
import { AppError, AppErrorCode } from '../../errors/app-error';
import { buildTeamWhereQuery } from '../../utils/teams';
import { mapSecondaryIdToTemplateId } from '../../utils/envelope';
import { getEnvelopeWhereInput } from '../envelope/get-envelope-by-id';
export type ToggleTemplateDirectLinkOptions = {
templateId: number;
@ -16,24 +19,31 @@ export const toggleTemplateDirectLink = async ({
teamId,
enabled,
}: ToggleTemplateDirectLinkOptions) => {
const template = await prisma.template.findFirst({
where: {
const { envelopeWhereInput } = await getEnvelopeWhereInput({
type: EnvelopeType.TEMPLATE,
id: {
type: 'templateId',
id: templateId,
team: buildTeamWhereQuery({ teamId, userId }),
},
userId,
teamId,
});
const envelope = await prisma.envelope.findFirst({
where: envelopeWhereInput,
include: {
recipients: true,
directLink: true,
},
});
if (!template) {
if (!envelope) {
throw new AppError(AppErrorCode.NOT_FOUND, {
message: 'Template not found',
});
}
const { directLink } = template;
const { directLink } = envelope;
if (!directLink) {
throw new AppError(AppErrorCode.NOT_FOUND, {
@ -41,13 +51,22 @@ export const toggleTemplateDirectLink = async ({
});
}
return await prisma.templateDirectLink.update({
const updatedDirectLink = await prisma.templateDirectLink.update({
where: {
id: directLink.id,
},
data: {
templateId: template.id,
envelopeId: envelope.id,
enabled,
},
});
return {
id: updatedDirectLink.id,
token: updatedDirectLink.token,
createdAt: updatedDirectLink.createdAt,
enabled: updatedDirectLink.enabled,
directTemplateRecipientId: updatedDirectLink.directTemplateRecipientId,
templateId: mapSecondaryIdToTemplateId(envelope.secondaryId),
};
};