Files
esign/packages/lib/server-only/template/toggle-template-direct-link.ts
zooqueen fb4e3df0e3 rename: @hanzo/sign-* → @hanzo/esign-* (full eSign brand consistency)
The product is branded Hanzo eSign (esign.hanzo.ai, repo hanzoai/esign).
Rename all workspace packages @hanzo/sign-* → @hanzo/esign-* (1052 files)
and align docker/Dockerfile turbo --scope/--filter to the actual remix
package name @hanzo/esign (was a pre-existing mismatch with -remix that
broke the build). Protected deps (@hanzo/insights, @hanzo/logo) untouched.
2026-06-21 19:56:09 -07:00

74 lines
1.7 KiB
TypeScript

import { EnvelopeType } from '@prisma/client';
import { prisma } from '@hanzo/esign-prisma';
import { AppError, AppErrorCode } from '../../errors/app-error';
import { mapSecondaryIdToTemplateId } from '../../utils/envelope';
import { getEnvelopeWhereInput } from '../envelope/get-envelope-by-id';
export type ToggleTemplateDirectLinkOptions = {
templateId: number;
userId: number;
teamId: number;
enabled: boolean;
};
export const toggleTemplateDirectLink = async ({
templateId,
userId,
teamId,
enabled,
}: ToggleTemplateDirectLinkOptions) => {
const { envelopeWhereInput } = await getEnvelopeWhereInput({
type: EnvelopeType.TEMPLATE,
id: {
type: 'templateId',
id: templateId,
},
userId,
teamId,
});
const envelope = await prisma.envelope.findFirst({
where: envelopeWhereInput,
include: {
recipients: true,
directLink: true,
},
});
if (!envelope) {
throw new AppError(AppErrorCode.NOT_FOUND, {
message: 'Template not found',
});
}
const { directLink } = envelope;
if (!directLink) {
throw new AppError(AppErrorCode.NOT_FOUND, {
message: 'Direct template link not found',
});
}
const updatedDirectLink = await prisma.templateDirectLink.update({
where: {
id: directLink.id,
},
data: {
envelopeId: envelope.id,
enabled,
},
});
return {
id: updatedDirectLink.id,
token: updatedDirectLink.token,
createdAt: updatedDirectLink.createdAt,
enabled: updatedDirectLink.enabled,
directTemplateRecipientId: updatedDirectLink.directTemplateRecipientId,
templateId: mapSecondaryIdToTemplateId(envelope.secondaryId),
envelopeId: envelope.id,
};
};