mirror of
https://github.com/documenso/documenso.git
synced 2025-11-17 02:01:33 +10:00
feat: add envelope editor
This commit is contained in:
@ -8,6 +8,8 @@ import { createDocumentData } from '@documenso/lib/server-only/document-data/cre
|
||||
import { getDocumentWithDetailsById } from '@documenso/lib/server-only/document/get-document-with-details-by-id';
|
||||
import { sendDocument } from '@documenso/lib/server-only/document/send-document';
|
||||
import { createEnvelope } from '@documenso/lib/server-only/envelope/create-envelope';
|
||||
import { duplicateEnvelope } from '@documenso/lib/server-only/envelope/duplicate-envelope';
|
||||
import { updateEnvelope } from '@documenso/lib/server-only/envelope/update-envelope';
|
||||
import {
|
||||
ZCreateDocumentFromDirectTemplateResponseSchema,
|
||||
createDocumentFromDirectTemplate,
|
||||
@ -16,11 +18,9 @@ import { createDocumentFromTemplate } from '@documenso/lib/server-only/template/
|
||||
import { createTemplateDirectLink } from '@documenso/lib/server-only/template/create-template-direct-link';
|
||||
import { deleteTemplate } from '@documenso/lib/server-only/template/delete-template';
|
||||
import { deleteTemplateDirectLink } from '@documenso/lib/server-only/template/delete-template-direct-link';
|
||||
import { duplicateTemplate } from '@documenso/lib/server-only/template/duplicate-template';
|
||||
import { findTemplates } from '@documenso/lib/server-only/template/find-templates';
|
||||
import { getTemplateById } from '@documenso/lib/server-only/template/get-template-by-id';
|
||||
import { toggleTemplateDirectLink } from '@documenso/lib/server-only/template/toggle-template-direct-link';
|
||||
import { updateTemplate } from '@documenso/lib/server-only/template/update-template';
|
||||
import { getPresignPostUrl } from '@documenso/lib/universal/upload/server-actions';
|
||||
import { mapSecondaryIdToTemplateId } from '@documenso/lib/utils/envelope';
|
||||
import { mapEnvelopeToTemplateLite } from '@documenso/lib/utils/templates';
|
||||
@ -91,6 +91,7 @@ export const templateRouter = router({
|
||||
|
||||
return {
|
||||
id: legacyTemplateId,
|
||||
envelopeId: envelope.id,
|
||||
type: envelope.templateType,
|
||||
visibility: envelope.visibility,
|
||||
externalId: envelope.externalId,
|
||||
@ -139,7 +140,10 @@ export const templateRouter = router({
|
||||
});
|
||||
|
||||
return await getTemplateById({
|
||||
id: templateId,
|
||||
id: {
|
||||
type: 'templateId',
|
||||
id: templateId,
|
||||
},
|
||||
userId: ctx.user.id,
|
||||
teamId,
|
||||
});
|
||||
@ -175,6 +179,7 @@ export const templateRouter = router({
|
||||
const envelope = await createEnvelope({
|
||||
userId: ctx.user.id,
|
||||
teamId,
|
||||
internalVersion: 1,
|
||||
data: {
|
||||
type: EnvelopeType.TEMPLATE,
|
||||
title,
|
||||
@ -240,6 +245,7 @@ export const templateRouter = router({
|
||||
const createdTemplate = await createEnvelope({
|
||||
userId: user.id,
|
||||
teamId,
|
||||
internalVersion: 1,
|
||||
data: {
|
||||
type: EnvelopeType.TEMPLATE,
|
||||
title,
|
||||
@ -264,7 +270,10 @@ export const templateRouter = router({
|
||||
const legacyTemplateId = mapSecondaryIdToTemplateId(createdTemplate.secondaryId);
|
||||
|
||||
const fullTemplate = await getTemplateById({
|
||||
id: legacyTemplateId,
|
||||
id: {
|
||||
type: 'templateId',
|
||||
id: legacyTemplateId,
|
||||
},
|
||||
userId: user.id,
|
||||
teamId,
|
||||
});
|
||||
@ -300,12 +309,19 @@ export const templateRouter = router({
|
||||
},
|
||||
});
|
||||
|
||||
const envelope = await updateTemplate({
|
||||
const envelope = await updateEnvelope({
|
||||
userId,
|
||||
teamId,
|
||||
templateId,
|
||||
data,
|
||||
id: {
|
||||
type: 'templateId',
|
||||
id: templateId,
|
||||
},
|
||||
data: {
|
||||
...data,
|
||||
templateType: data?.type, // Backwards compatibility.
|
||||
},
|
||||
meta,
|
||||
requestMetadata: ctx.metadata,
|
||||
});
|
||||
|
||||
return mapEnvelopeToTemplateLite(envelope);
|
||||
@ -335,7 +351,7 @@ export const templateRouter = router({
|
||||
},
|
||||
});
|
||||
|
||||
const envelope = await duplicateTemplate({
|
||||
const duplicatedEnvelope = await duplicateEnvelope({
|
||||
userId: ctx.user.id,
|
||||
teamId,
|
||||
id: {
|
||||
@ -344,7 +360,7 @@ export const templateRouter = router({
|
||||
},
|
||||
});
|
||||
|
||||
return mapEnvelopeToTemplateLite(envelope);
|
||||
return mapEnvelopeToTemplateLite(duplicatedEnvelope.envelope);
|
||||
}),
|
||||
|
||||
/**
|
||||
@ -372,7 +388,14 @@ export const templateRouter = router({
|
||||
},
|
||||
});
|
||||
|
||||
await deleteTemplate({ userId, id: templateId, teamId });
|
||||
await deleteTemplate({
|
||||
userId,
|
||||
id: {
|
||||
type: 'templateId',
|
||||
id: templateId,
|
||||
},
|
||||
teamId,
|
||||
});
|
||||
|
||||
return ZGenericSuccessResponse;
|
||||
}),
|
||||
@ -415,6 +438,16 @@ export const templateRouter = router({
|
||||
throw new Error('You have reached your document limit.');
|
||||
}
|
||||
|
||||
// Backwards compatibility mapping since we need the envelopeItemId for the custom document data.
|
||||
const customDocumentData = customDocumentDataId
|
||||
? [
|
||||
{
|
||||
documentDataId: customDocumentDataId,
|
||||
envelopeItemId: undefined,
|
||||
},
|
||||
]
|
||||
: input.customDocumentData || [];
|
||||
|
||||
const envelope: Envelope = await createDocumentFromTemplate({
|
||||
id: {
|
||||
type: 'templateId',
|
||||
@ -423,7 +456,7 @@ export const templateRouter = router({
|
||||
teamId,
|
||||
userId: ctx.user.id,
|
||||
recipients,
|
||||
customDocumentDataId,
|
||||
customDocumentData,
|
||||
requestMetadata: ctx.metadata,
|
||||
folderId,
|
||||
prefillFields,
|
||||
@ -534,7 +567,14 @@ export const templateRouter = router({
|
||||
},
|
||||
});
|
||||
|
||||
const template = await getTemplateById({ id: templateId, teamId, userId: ctx.user.id });
|
||||
const template = await getTemplateById({
|
||||
id: {
|
||||
type: 'templateId',
|
||||
id: templateId,
|
||||
},
|
||||
teamId,
|
||||
userId: ctx.user.id,
|
||||
});
|
||||
|
||||
const limits = await getServerLimits({ userId: ctx.user.id, teamId: template.teamId });
|
||||
|
||||
@ -641,7 +681,10 @@ export const templateRouter = router({
|
||||
}
|
||||
|
||||
const template = await getTemplateById({
|
||||
id: templateId,
|
||||
id: {
|
||||
type: 'templateId',
|
||||
id: templateId,
|
||||
},
|
||||
teamId,
|
||||
userId: user.id,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user