From af672d8909ee89412a599253faf16e4a2adb0215 Mon Sep 17 00:00:00 2001 From: Zac Turner Date: Thu, 20 Nov 2025 14:09:41 +1100 Subject: [PATCH 1/2] ap-6083 # Changed `FormSubmissionResult` to not have a function on it --- src/services/submit.ts | 26 ++++++++++++++++++++++---- src/types/submissions.ts | 14 +++++++------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/services/submit.ts b/src/services/submit.ts index eba9447f..18dceb56 100644 --- a/src/services/submit.ts +++ b/src/services/submit.ts @@ -186,6 +186,27 @@ export default async function submit({ return `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}` } } + + const downloadSubmissionPdfs = () => { + if (!data.pdfAccessToken) { + return undefined + } + if ( + Array.isArray( + formSubmission.definition.postSubmissionReceipt?.allowPDFDownload, + ) + ) { + return formSubmission.definition.postSubmissionReceipt?.allowPDFDownload.map( + (pdfConfiguration) => { + return { + ...pdfConfiguration, + url: `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}&configurationId=${pdfConfiguration.id}`, + } + }, + ) + } + } + const formSubmissionResult: FormSubmissionResult = { ...formSubmission, payment: null, @@ -196,10 +217,7 @@ export default async function submit({ submissionId: data.submissionId, isUploadingAttachments: false, downloadSubmissionPdfUrl: downloadSubmissionPdfUrl(), - getDownloadSubmissionPdfUrl: !data.pdfAccessToken - ? undefined - : (configurationId: string) => - `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}&configurationId=${configurationId}`, + downloadSubmissionPdfs: downloadSubmissionPdfs(), attachmentsAccessToken: data.attachmentsAccessToken, } diff --git a/src/types/submissions.ts b/src/types/submissions.ts index 1999a477..7c497613 100644 --- a/src/types/submissions.ts +++ b/src/types/submissions.ts @@ -164,15 +164,15 @@ export type FormSubmissionResult = FormSubmission & { /** * @deprecated Only returned when legacy post submission download * configuration is in use. For non legacy configured forms, use - * `getDownloadSubmissionPdfUrl` instead. + * `downloadSubmissionPdfs` instead. */ downloadSubmissionPdfUrl?: string - /** - * The URL to download the form submission PDF. - * - * @param configurationId - The configuration ID to use for the PDF download. - */ - getDownloadSubmissionPdfUrl?: (configurationId: string) => string + + downloadSubmissionPdfs?: Array<{ + id: string + configuration: SubmissionEventTypes.PDFConfiguration + url: string + }> /** The access token to download post-submission attachment urls and metadata. */ attachmentsAccessToken?: string } From 17fe62c9cc184b29340dc4a533ca73e1782c7e66 Mon Sep 17 00:00:00 2001 From: Zac Turner Date: Thu, 20 Nov 2025 14:25:19 +1100 Subject: [PATCH 2/2] ap-6083 # Altered logic --- src/services/submit.ts | 65 +++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/src/services/submit.ts b/src/services/submit.ts index 18dceb56..473ebed4 100644 --- a/src/services/submit.ts +++ b/src/services/submit.ts @@ -173,40 +173,45 @@ export default async function submit({ abortSignal, ) - const downloadSubmissionPdfUrl = () => { - if (!data.pdfAccessToken) { - return undefined + const getDownloadSubmissionPdfUrls = () => { + const allowPDFDownload = + formSubmission.definition.postSubmissionReceipt?.allowPDFDownload + if (!data.pdfAccessToken || !allowPDFDownload) { + return { + downloadSubmissionPdfUrl: undefined, + downloadSubmissionPdfs: undefined, + } } - if ( - formSubmission.definition.postSubmissionReceipt?.allowPDFDownload && - !Array.isArray( - formSubmission.definition.postSubmissionReceipt?.allowPDFDownload, - ) - ) { - return `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}` + if (allowPDFDownload && !Array.isArray(allowPDFDownload)) { + // Cater for legacy config + const url = `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}` + return { + downloadSubmissionPdfUrl: url, + downloadSubmissionPdfs: [ + { + id: 'default', + configuration: allowPDFDownload, + url, + }, + ], + } } - } - const downloadSubmissionPdfs = () => { - if (!data.pdfAccessToken) { - return undefined - } - if ( - Array.isArray( - formSubmission.definition.postSubmissionReceipt?.allowPDFDownload, - ) - ) { - return formSubmission.definition.postSubmissionReceipt?.allowPDFDownload.map( - (pdfConfiguration) => { - return { - ...pdfConfiguration, - url: `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}&configurationId=${pdfConfiguration.id}`, - } - }, - ) + return { + downloadSubmissionPdfUrl: undefined, + downloadSubmissionPdfs: allowPDFDownload.map((pdfConfiguration) => { + const url = `${tenants.current.apiOrigin}/forms/${formSubmission.definition.id}/submissions/${data.submissionId}/pdf-document?accessToken=${data.pdfAccessToken}&configurationId=${pdfConfiguration.id}` + return { + ...pdfConfiguration, + url, + } + }), } } + const { downloadSubmissionPdfUrl, downloadSubmissionPdfs } = + getDownloadSubmissionPdfUrls() + const formSubmissionResult: FormSubmissionResult = { ...formSubmission, payment: null, @@ -216,8 +221,8 @@ export default async function submit({ submissionTimestamp: data.submissionTimestamp, submissionId: data.submissionId, isUploadingAttachments: false, - downloadSubmissionPdfUrl: downloadSubmissionPdfUrl(), - downloadSubmissionPdfs: downloadSubmissionPdfs(), + downloadSubmissionPdfUrl, + downloadSubmissionPdfs, attachmentsAccessToken: data.attachmentsAccessToken, }