fix: additional backwards compat

This commit is contained in:
David Nguyen
2025-10-14 15:19:09 +11:00
parent bddaa5ec66
commit 0eef4cd7e6
32 changed files with 288 additions and 92 deletions

View File

@ -69,7 +69,16 @@ export const createDocumentTemporaryRoute = authenticatedProcedure
visibility,
globalAccessAuth,
globalActionAuth,
recipients,
recipients: (recipients || []).map((recipient) => ({
...recipient,
fields: (recipient.fields || []).map((field) => ({
...field,
page: field.pageNumber,
positionX: field.pageX,
positionY: field.pageY,
documentDataId: documentData.id,
})),
})),
folderId,
envelopeItems: [
{
@ -102,14 +111,25 @@ export const createDocumentTemporaryRoute = authenticatedProcedure
document: {
...createdEnvelope,
envelopeId: createdEnvelope.id,
documentDataId: firstDocumentData.id,
documentData: {
...firstDocumentData,
envelopeItemId: envelopeItems[0].id,
},
documentMeta: {
...createdEnvelope.documentMeta,
documentId: legacyDocumentId,
},
id: legacyDocumentId,
fields: createdEnvelope.fields.map((field) => ({
...field,
documentId: legacyDocumentId,
templateId: null,
})),
recipients: createdEnvelope.recipients.map((recipient) => ({
...recipient,
documentId: legacyDocumentId,
templateId: null,
})),
},
folder: createdEnvelope.folder, // Todo: Remove this prior to api-v2 release.

View File

@ -39,7 +39,16 @@ export const createEmbeddingDocumentRoute = procedure
type: EnvelopeType.DOCUMENT,
title,
externalId,
recipients,
recipients: (recipients || []).map((recipient) => ({
...recipient,
fields: (recipient.fields || []).map((field) => ({
...field,
page: field.pageNumber,
positionX: field.pageX,
positionY: field.pageY,
documentDataId,
})),
})),
envelopeItems: [
{
documentDataId,

View File

@ -42,7 +42,13 @@ export const getMultiSignDocumentRoute = procedure
// Transform fields to match our schema
const transformedFields = fields.map((field) => ({
...field,
recipient,
recipient: {
...recipient,
documentId: document.id,
templateId: null,
},
documentId: document.id,
templateId: null,
}));
return {

View File

@ -7,6 +7,14 @@ import {
} from '@documenso/lib/types/document-auth';
import { ZDocumentFormValuesSchema } from '@documenso/lib/types/document-form-values';
import { ZDocumentMetaCreateSchema } from '@documenso/lib/types/document-meta';
import {
ZFieldHeightSchema,
ZFieldPageNumberSchema,
ZFieldPageXSchema,
ZFieldPageYSchema,
ZFieldWidthSchema,
} from '@documenso/lib/types/field';
import { ZFieldAndMetaSchema } from '@documenso/lib/types/field-meta';
import {
ZDocumentExternalIdSchema,
@ -48,18 +56,22 @@ export const ZCreateEnvelopeRequestSchema = z.object({
recipients: z
.array(
ZCreateRecipientSchema.extend({
// Todo: Envelopes ?
// fields: ZFieldAndMetaSchema.and(
// z.object({
// pageNumber: ZFieldPageNumberSchema,
// pageX: ZFieldPageXSchema,
// pageY: ZFieldPageYSchema,
// width: ZFieldWidthSchema,
// height: ZFieldHeightSchema,
// }),
// )
// .array()
// .optional(),
fields: ZFieldAndMetaSchema.and(
z.object({
documentDataId: z
.string()
.describe(
'The ID of the document data to create the field on. If empty, the first document data will be used.',
),
page: ZFieldPageNumberSchema,
positionX: ZFieldPageXSchema,
positionY: ZFieldPageYSchema,
width: ZFieldWidthSchema,
height: ZFieldHeightSchema,
}),
)
.array()
.optional(),
}),
)
.optional(),

View File

@ -20,7 +20,10 @@ export const ZSetEnvelopeRecipientsRequestSchema = z.object({
});
export const ZSetEnvelopeRecipientsResponseSchema = z.object({
recipients: ZRecipientLiteSchema.array(),
recipients: ZRecipientLiteSchema.omit({
documentId: true,
templateId: true,
}).array(),
});
export type TSetEnvelopeRecipientsRequest = z.infer<typeof ZSetEnvelopeRecipientsRequestSchema>;

View File

@ -57,7 +57,10 @@ export const ZSignEnvelopeFieldRequestSchema = z.object({
});
export const ZSignEnvelopeFieldResponseSchema = z.object({
signedField: ZFieldSchema.extend({
signedField: ZFieldSchema.omit({
templateId: true,
documentId: true,
}).extend({
signature: SignatureSchema.nullish(),
}),
});

View File

@ -23,6 +23,8 @@ import { getTemplateById } from '@documenso/lib/server-only/template/get-templat
import { toggleTemplateDirectLink } from '@documenso/lib/server-only/template/toggle-template-direct-link';
import { getPresignPostUrl } from '@documenso/lib/universal/upload/server-actions';
import { mapSecondaryIdToTemplateId } from '@documenso/lib/utils/envelope';
import { mapFieldToLegacyField } from '@documenso/lib/utils/fields';
import { mapRecipientToLegacyRecipient } from '@documenso/lib/utils/recipients';
import { mapEnvelopeToTemplateLite } from '@documenso/lib/utils/templates';
import { ZGenericSuccessResponse, ZSuccessResponseSchema } from '../document-router/schema';
@ -106,8 +108,10 @@ export const templateRouter = router({
folderId: envelope.folderId,
useLegacyFieldInsertion: envelope.useLegacyFieldInsertion,
team: envelope.team,
fields: envelope.fields,
recipients: envelope.recipients,
fields: envelope.fields.map((field) => mapFieldToLegacyField(field, envelope)),
recipients: envelope.recipients.map((recipient) =>
mapRecipientToLegacyRecipient(recipient, envelope),
),
templateMeta: envelope.documentMeta,
directLink: envelope.directLink,
};