Skip to content

Commit 9d429c0

Browse files
committed
feat: log err when pdf is not attached
1 parent 4a6cd36 commit 9d429c0

File tree

2 files changed

+57
-36
lines changed

2 files changed

+57
-36
lines changed

src/app/modules/submission/encrypt-submission/encrypt-submission.service.ts

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -153,22 +153,6 @@ const checkIfRespondentFormSummaryIsRequired = ({
153153
)
154154
}
155155

156-
const checkIfPdfGenerationIsRequired = ({
157-
isPaymentEnabled,
158-
autoReplyMailDatas,
159-
}: {
160-
isPaymentEnabled: boolean
161-
autoReplyMailDatas: AutoReplyMailData[]
162-
}): boolean => {
163-
return (
164-
checkIfAdminPdfIsRequired(isPaymentEnabled) ||
165-
checkIfRespondentFormSummaryIsRequired({
166-
isPaymentEnabled,
167-
autoReplyMailDatas,
168-
})
169-
)
170-
}
171-
172156
const generatePdfAttachmentIfRequired = ({
173157
isPaymentEnabled,
174158
autoReplyMailDatas,
@@ -182,12 +166,12 @@ const generatePdfAttachmentIfRequired = ({
182166
form: IPopulatedEncryptedForm
183167
responsesData: EmailAdminDataField[]
184168
}): ResultAsync<Mail.Attachment | undefined, AutoreplyPdfGenerationError> => {
185-
if (
186-
!checkIfPdfGenerationIsRequired({
187-
isPaymentEnabled,
188-
autoReplyMailDatas,
189-
})
190-
) {
169+
const isAdminPdfRequired = checkIfAdminPdfIsRequired(isPaymentEnabled)
170+
const isRespondentCopyPdfRequired = checkIfRespondentFormSummaryIsRequired({
171+
isPaymentEnabled,
172+
autoReplyMailDatas,
173+
})
174+
if (!isAdminPdfRequired && !isRespondentCopyPdfRequired) {
191175
return okAsync(undefined)
192176
}
193177

@@ -200,10 +184,27 @@ const generatePdfAttachmentIfRequired = ({
200184
}
201185

202186
const DEFAULT_RESPONSE_PDF_FILENAME = 'response.pdf'
203-
return generateAutoreplyPdf(autoReplyData, true).map((pdfBuffer) => ({
204-
filename: DEFAULT_RESPONSE_PDF_FILENAME,
205-
content: Buffer.copyBytesFrom(pdfBuffer),
206-
}))
187+
return generateAutoreplyPdf(autoReplyData, true)
188+
.map((pdfBuffer) => ({
189+
filename: DEFAULT_RESPONSE_PDF_FILENAME,
190+
content: Buffer.copyBytesFrom(pdfBuffer),
191+
}))
192+
.mapErr((error) => {
193+
logger.error({
194+
message:
195+
'Failed to include required PDF attachment for email notifications',
196+
meta: {
197+
action: 'generatePdfAttachmentIfRequired',
198+
submissionId: submission.id,
199+
formId: form._id,
200+
formResponseMode: form.responseMode,
201+
isAdminPdfRequired,
202+
isRespondentCopyPdfRequired,
203+
},
204+
error,
205+
})
206+
return error
207+
})
207208
}
208209

209210
/**

src/app/modules/submission/multirespondent-submission/multirespondent-submission.service.ts

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -881,16 +881,21 @@ const generatePdfAttachmentIfRequired = ({
881881
}): ResultAsync<Mail.Attachment | undefined, AutoreplyPdfGenerationError> => {
882882
const submissionId = submission.id
883883

884-
if (
885-
!checkIsPdfGenerationRequired({
886-
responses,
887-
form,
888-
currentStepActiveFields,
884+
const isRespondentCopyPdfRequired = checkIfRespondentFormSummaryIsRequired({
885+
responses,
886+
formFields: form.form_fields,
887+
currentStepActiveFields,
888+
})
889+
const isWorkflowCompletionEmailPdfRequired =
890+
checkIsWorkflowCompletionEmailPdfRequired({
889891
currentStepNumber,
892+
form,
893+
responses,
890894
isRejected,
891895
submissionId,
892896
})
893-
) {
897+
898+
if (!isRespondentCopyPdfRequired && !isWorkflowCompletionEmailPdfRequired) {
894899
return okAsync(undefined)
895900
}
896901

@@ -908,12 +913,27 @@ const generatePdfAttachmentIfRequired = ({
908913
}
909914

910915
const DEFAULT_RESPONSE_PDF_FILENAME = 'response.pdf'
911-
const pdfResult = generateAutoreplyPdf(autoReplyData, true).map(
912-
(pdfBuffer) => ({
916+
const pdfResult = generateAutoreplyPdf(autoReplyData, true)
917+
.map((pdfBuffer) => ({
913918
filename: DEFAULT_RESPONSE_PDF_FILENAME,
914919
content: Buffer.copyBytesFrom(pdfBuffer),
915-
}),
916-
)
920+
}))
921+
.mapErr((error) => {
922+
logger.error({
923+
message:
924+
'Failed to include required PDF attachment for email notifications',
925+
meta: {
926+
action: 'generatePdfAttachmentIfRequired',
927+
submissionId,
928+
formId: form._id,
929+
formResponseMode: FormResponseMode.Multirespondent,
930+
isRespondentCopyPdfRequired,
931+
isWorkflowCompletionEmailPdfRequired,
932+
},
933+
error,
934+
})
935+
return error
936+
})
917937

918938
return pdfResult
919939
}

0 commit comments

Comments
 (0)