From 68be42a48d9ad5716686bad5022da677bb2bd2b5 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Sat, 2 Dec 2023 23:03:24 +0200 Subject: [PATCH] add form attachments to completed emails --- app/mailers/submitter_mailer.rb | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/app/mailers/submitter_mailer.rb b/app/mailers/submitter_mailer.rb index 68c9bcf5..54da3476 100644 --- a/app/mailers/submitter_mailer.rb +++ b/app/mailers/submitter_mailer.rb @@ -94,7 +94,26 @@ class SubmitterMailer < ApplicationMailer total_size = audit_trail_data.size end - documents.each do |attachment| + total_size = add_attachments_with_size_limit(documents, total_size) + + attachments[submitter.submission.audit_trail.filename.to_s] = audit_trail_data if audit_trail_data + + file_fields = submitter.submission.template_fields.select { |e| e['type'] == 'file' } + + if file_fields.pluck('submitter_uuid').uniq.size == 1 + storage_attachments = + submitter.attachments.where(uuid: submitter.values.values_at(*file_fields.pluck('uuid')).flatten) + + add_attachments_with_size_limit(storage_attachments, total_size) + end + + documents + end + + def add_attachments_with_size_limit(storage_attachments, current_size) + total_size = current_size + + storage_attachments.each do |attachment| total_size += attachment.byte_size break if total_size >= MAX_ATTACHMENTS_SIZE @@ -102,9 +121,7 @@ class SubmitterMailer < ApplicationMailer attachments[attachment.filename.to_s] = attachment.download end - attachments[submitter.submission.audit_trail.filename.to_s] = audit_trail_data if audit_trail_data - - documents + total_size end def from_address_for_submitter(submitter)