Skip to content

Commit a07cede

Browse files
committed
feat: add admin pdf copy for storage
1 parent fa8865f commit a07cede

File tree

6 files changed

+304
-208
lines changed

6 files changed

+304
-208
lines changed

src/app/modules/payments/payments.service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ export const performPaymentPostSubmissionActions = (
242242
performEncryptPostSubmissionActions({
243243
submission,
244244
responses: payment.responses,
245+
emailFields: [], // TODO [EMAIL-CONFIRMATION-BUG]: Email confirmation email to email fields does not work for payment forms, this is an existing issue to be fixed.
245246
})
246247
.andThen(() =>
247248
// If successfully sent email confirmations, delete response data from payment document.

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

Lines changed: 7 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import {
1717
} from '../../../../../shared/types'
1818
import {
1919
IAttachmentInfo,
20-
IEncryptedForm,
2120
IEncryptedSubmissionSchema,
2221
IPopulatedEncryptedForm,
2322
StripePaymentMetadataDto,
@@ -35,7 +34,6 @@ import getPaymentModel from '../../../models/payment.server.model'
3534
import { getEncryptPendingSubmissionModel } from '../../../models/pending_submission.server.model'
3635
import { getEncryptSubmissionModel } from '../../../models/submission.server.model'
3736
import * as CaptchaMiddleware from '../../../services/captcha/captcha.middleware'
38-
import MailService from '../../../services/mail/mail.service'
3937
import * as TurnstileMiddleware from '../../../services/turnstile/turnstile.middleware'
4038
import { Pipeline } from '../../../utils/pipeline-middleware'
4139
import { createReqMeta } from '../../../utils/request'
@@ -55,9 +53,6 @@ import { SgidService } from '../../sgid/sgid.service'
5553
import { getOidcService } from '../../spcp/spcp.oidc.service'
5654
import { getPopulatedUserById } from '../../user/user.service'
5755
import * as VerifiedContentService from '../../verified-content/verified-content.service'
58-
import { MYINFO_PREFIX } from '../email-submission/email-submission.constants'
59-
import * as EmailSubmissionService from '../email-submission/email-submission.service'
60-
import { SubmissionEmailObj } from '../email-submission/email-submission.util'
6156
import * as EncryptSubmissionMiddleware from '../encrypt-submission/encrypt-submission.middleware'
6257
import ParsedResponsesObject from '../ParsedResponsesObject.class'
6358
import * as ReceiverMiddleware from '../receiver/receiver.middleware'
@@ -694,6 +689,9 @@ const _createPaymentSubmission = async ({
694689
})
695690
}
696691

692+
/**
693+
* @param emailFields fields and their responses that will be included in email notifications to admins and respondents.
694+
*/
697695
const _createSubmission = async ({
698696
req,
699697
res,
@@ -778,50 +776,7 @@ const _createSubmission = async ({
778776
})
779777

780778
const createdTime = submission.created || new Date()
781-
782-
const logMetaWithSubmission = {
783-
...logMeta,
784-
submissionId,
785-
responseMetadata,
786-
}
787-
788-
const emailData = new SubmissionEmailObj(
789-
emailFields,
790-
new Set(), // the MyInfo prefixes are already inserted in middleware
791-
form.authType,
792-
)
793-
794-
// Since we insert the [MyInfo] prefix in `encrypt-submission.middleware.ts`:L434
795-
// we want to remove it for the dataCollationData
796-
const dataCollationData = emailData.dataCollationData.map((item) => ({
797-
question: item.question.startsWith(MYINFO_PREFIX)
798-
? item.question.slice(MYINFO_PREFIX.length)
799-
: item.question,
800-
answer: item.answer,
801-
}))
802-
803-
const emailAttachments = [...(unencryptedAttachments ?? [])]
804-
// We don't await for email submission, as the submission gets saved for encrypt
805-
// submissions regardless, the email is more of a notification and shouldn't
806-
// stop the storage of the data in the db
807-
if (((form as IEncryptedForm)?.emails || []).length > 0) {
808-
logger.info({
809-
message: 'Sending admin notification mail',
810-
meta: logMetaWithSubmission,
811-
})
812-
813-
void MailService.sendSubmissionToAdmin({
814-
replyToEmails: EmailSubmissionService.extractEmailAnswers(emailFields),
815-
form,
816-
submission: {
817-
created: createdTime,
818-
id: submission.id,
819-
},
820-
attachments: emailAttachments,
821-
formData: emailData.formData,
822-
dataCollationData,
823-
})
824-
}
779+
const submissionAttachments = [...(unencryptedAttachments ?? [])]
825780

826781
// TODO 6395 make responseMetadata mandatory
827782
if (responseMetadata) {
@@ -846,10 +801,10 @@ const _createSubmission = async ({
846801
return await performEncryptPostSubmissionActions({
847802
submission,
848803
responses,
849-
growthbook: req.growthbook,
850-
emailData,
851-
attachments: emailAttachments,
804+
emailFields,
805+
submissionAttachments,
852806
respondentEmails,
807+
growthbook: req.growthbook,
853808
})
854809
}
855810

0 commit comments

Comments
 (0)