Skip to content

Commit 0afe207

Browse files
committed
feat: propagate isPaymentForm check up and only attach pdf if required
1 parent 8a246d7 commit 0afe207

File tree

5 files changed

+13
-9
lines changed

5 files changed

+13
-9
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ export const performEncryptPostSubmissionActions = ({
351351
attachments,
352352
formData: emailData.formData,
353353
dataCollationData,
354+
pdfAttachment: checkIfAdminPdfIsRequired() ? pdfAttachment : undefined,
354355
})
355356

356357
return sendEmailConfirmations({
@@ -359,7 +360,11 @@ export const performEncryptPostSubmissionActions = ({
359360
attachments,
360361
responsesData: emailData?.autoReplyData,
361362
recipientData: recipientEmailDatas,
362-
pdfAttachment,
363+
pdfAttachment: checkIfRespondentFormSummaryIsRequired({
364+
isPaymentEnabled,
365+
autoReplyMailDatas: recipientEmailDatas,
366+
}) ? pdfAttachment : undefined,
367+
isPaymentEnabled,
363368
}).mapErr((error) => {
364369
logger.error({
365370
message: 'Error while sending email confirmations',

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,7 +1214,7 @@ export const performMultiRespondentPostSubmissionUpdateActions = ({
12141214
attachments,
12151215
formFields: snapshottedFormDef.form_fields,
12161216
currentStepActiveFields: snapshottedFormDef.workflow[currentStepNumber]?.edit ?? [],
1217-
pdfResult,
1217+
pdfResult: checkIfRespondentFormSummaryIsRequired({ responses, formFields: snapshottedFormDef.form_fields, currentStepActiveFields: snapshottedFormDef.workflow[currentStepNumber]?.edit ?? [] }) ? pdfResult : okAsync(undefined),
12181218
}).mapErr((error) => {
12191219
logger.error({
12201220
message: 'Send multirespondent respondent copy email error',
@@ -1249,7 +1249,7 @@ export const performMultiRespondentPostSubmissionUpdateActions = ({
12491249
submissionId,
12501250
isApproval: checkIsFormApproval(snapshottedFormDef),
12511251
attachments: attachments,
1252-
pdfResult: pdfResult,
1252+
pdfResult: checkIsWorkflowCompletionEmailPdfRequired({ currentStepNumber, form: snapshottedFormDef, responses, isRejected: isStepRejected, submissionId }) ? pdfResult : okAsync(undefined),
12531253
})
12541254
.mapErr((error) => {
12551255
logger.error({

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,13 +594,15 @@ export const sendEmailConfirmations = <S extends ISubmissionSchema>({
594594
attachments,
595595
recipientData,
596596
pdfAttachment,
597+
isPaymentEnabled,
597598
}: {
598599
form: IPopulatedForm
599600
submission: S
600601
responsesData?: EmailRespondentConfirmationField[]
601602
attachments?: Mail.Attachment[]
602603
recipientData: AutoReplyMailData[]
603604
pdfAttachment?: Mail.Attachment
605+
isPaymentEnabled: boolean
604606
}): ResultAsync<true, SendEmailConfirmationError> => {
605607
const logMeta = {
606608
action: 'sendEmailConfirmations',
@@ -617,6 +619,7 @@ export const sendEmailConfirmations = <S extends ISubmissionSchema>({
617619
responsesData,
618620
autoReplyMailDatas: recipientData,
619621
pdfAttachment,
622+
isPaymentEnabled,
620623
})
621624
return ResultAsync.fromPromise(sentEmailsPromise, (error) => {
622625
logger.error({

src/app/services/mail/mail.service.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -807,6 +807,7 @@ export class MailService {
807807
autoReplyMailDatas,
808808
attachments = [],
809809
pdfAttachment,
810+
isPaymentEnabled,
810811
}: SendAutoReplyEmailsArgs): Promise<
811812
PromiseSettledResult<
812813
Result<
@@ -834,12 +835,6 @@ export class MailService {
834835

835836
// Create a copy of attachments for attaching of autoreply pdf if needed.
836837
const attachmentsWithAutoreplyPdf = [...attachments, ...(pdfAttachment ? [pdfAttachment] : [])]
837-
const isEncryptForm = form?.responseMode === FormResponseMode.Encrypt
838-
const encryptFormDef = form as IPopulatedEncryptedForm
839-
const isPaymentEnabled =
840-
isEncryptForm &&
841-
encryptFormDef.payments_channel.channel !== PaymentChannel.Unconnected &&
842-
encryptFormDef.payments_field.enabled === true
843838

844839
// Prepare mail sending for each autoreply mail.
845840
return Promise.allSettled(

src/app/services/mail/mail.types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ export type SendAutoReplyEmailsArgs = {
3434
})[]
3535
autoReplyMailDatas: AutoReplyMailData[]
3636
pdfAttachment?: Mail.Attachment
37+
isPaymentEnabled: boolean
3738
}
3839

3940
export type MailServiceParams = {

0 commit comments

Comments
 (0)