Files
sign/packages/lib/server-only/template/get-template-by-direct-link-token.ts

44 lines
931 B
TypeScript
Raw Normal View History

import { prisma } from '@documenso/prisma';
2025-01-02 15:33:37 +11:00
import { AppError, AppErrorCode } from '../../errors/app-error';
export interface GetTemplateByDirectLinkTokenOptions {
token: string;
}
export const getTemplateByDirectLinkToken = async ({
token,
}: GetTemplateByDirectLinkTokenOptions) => {
2025-01-02 15:33:37 +11:00
const template = await prisma.template.findFirst({
where: {
directLink: {
token,
enabled: true,
},
},
include: {
directLink: true,
2025-01-13 13:41:53 +11:00
recipients: {
include: {
2025-01-13 13:41:53 +11:00
fields: true,
},
},
templateDocumentData: true,
templateMeta: true,
},
});
2025-01-02 15:33:37 +11:00
const directLink = template?.directLink;
// Doing this to enforce type safety for directLink.
if (!directLink) {
throw new AppError(AppErrorCode.NOT_FOUND);
}
return {
...template,
2025-01-02 15:33:37 +11:00
directLink,
2025-01-13 13:41:53 +11:00
fields: template.recipients.map((recipient) => recipient.fields).flat(),
};
};