From 9ee89346b19e3a66089c6265d53a2ab95e14d2d3 Mon Sep 17 00:00:00 2001 From: Catalin Pit <25515812+catalinpit@users.noreply.github.com> Date: Tue, 10 Sep 2024 14:35:35 +0300 Subject: [PATCH] fix: template with empty advanced fields backend (#1340) extension of https://github.com/documenso/documenso/pull/1339 --- .../server-only/field/set-fields-for-template.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/lib/server-only/field/set-fields-for-template.ts b/packages/lib/server-only/field/set-fields-for-template.ts index c38d96b76..88002479a 100644 --- a/packages/lib/server-only/field/set-fields-for-template.ts +++ b/packages/lib/server-only/field/set-fields-for-template.ts @@ -107,7 +107,10 @@ export const setFieldsForTemplate = async ({ } } - if (field.type === FieldType.CHECKBOX && field.fieldMeta) { + if (field.type === FieldType.CHECKBOX) { + if (!field.fieldMeta) { + throw new Error('Checkbox field is missing required metadata'); + } const checkboxFieldParsedMeta = ZCheckboxFieldMeta.parse(field.fieldMeta); const errors = validateCheckboxField( checkboxFieldParsedMeta?.values?.map((item) => item.value) ?? [], @@ -118,7 +121,10 @@ export const setFieldsForTemplate = async ({ } } - if (field.type === FieldType.RADIO && field.fieldMeta) { + if (field.type === FieldType.RADIO) { + if (!field.fieldMeta) { + throw new Error('Radio field is missing required metadata'); + } const radioFieldParsedMeta = ZRadioFieldMeta.parse(field.fieldMeta); const checkedRadioFieldValue = radioFieldParsedMeta.values?.find( (option) => option.checked, @@ -129,7 +135,10 @@ export const setFieldsForTemplate = async ({ } } - if (field.type === FieldType.DROPDOWN && field.fieldMeta) { + if (field.type === FieldType.DROPDOWN) { + if (!field.fieldMeta) { + throw new Error('Dropdown field is missing required metadata'); + } const dropdownFieldParsedMeta = ZDropdownFieldMeta.parse(field.fieldMeta); const errors = validateDropdownField(undefined, dropdownFieldParsedMeta); if (errors.length > 0) {