add combine pdf toggle

This commit is contained in:
Pete Matsyburka
2024-08-23 23:46:22 +03:00
parent 66c44f8ff5
commit b6f307690d
13 changed files with 50 additions and 16 deletions
+11 -9
View File
@@ -4,7 +4,7 @@ module Submissions
module SerializeForApi
SERIALIZE_PARAMS = {
only: %i[id slug source submitters_order expire_at created_at updated_at archived_at],
methods: %i[audit_log_url],
methods: %i[audit_log_url combined_document_url],
include: {
submitters: { only: %i[id slug uuid name email phone
completed_at opened_at sent_at declined_at
@@ -26,14 +26,11 @@ module Submissions
json = submission.as_json(SERIALIZE_PARAMS)
json['submission_events'] = Submitters::SerializeForApi.serialize_events(submission.submission_events)
json['combined_document_url'] ||= maybe_build_combined_url(submitters, submission, params)
if submitters.all?(&:completed_at?)
last_submitter = submitters.max_by(&:completed_at)
if params[:include].to_s.include?('combined_document_url')
json[:combined_document_url] = build_combined_url(submitters.max_by(&:completed_at), submission)
end
json[:documents] = serialized_submitters.find { |e| e['id'] == last_submitter.id }['documents']
json[:status] = 'completed'
json[:completed_at] = last_submitter.completed_at
@@ -52,13 +49,18 @@ module Submissions
json
end
def build_combined_url(submitter, submission)
return unless submitter.completed_at?
def maybe_build_combined_url(submitters, submission, params)
return unless submitters.all?(&:completed_at?)
attachment = submission.combined_document_attachment
attachment ||= Submissions::GenerateCombinedAttachment.call(submitter)
ActiveStorage::Blob.proxy_url(attachment.blob)
if !attachment && params[:include].to_s.include?('combined_document_url')
submitter = submitters.max_by(&:completed_at)
attachment = Submissions::GenerateCombinedAttachment.call(submitter)
end
ActiveStorage::Blob.proxy_url(attachment.blob) if attachment
end
end
end