allow to download combined pdf via api

pull/349/head
Pete Matsyburka 1 year ago
parent 16e5c13633
commit 8aac935641

@ -44,7 +44,7 @@ module Api
@submission.audit_trail_attachment = Submissions::GenerateAuditTrail.call(@submission) @submission.audit_trail_attachment = Submissions::GenerateAuditTrail.call(@submission)
end end
render json: Submissions::SerializeForApi.call(@submission, submitters) render json: Submissions::SerializeForApi.call(@submission, submitters, params)
end end
def create def create

@ -18,7 +18,7 @@ module Submissions
module_function module_function
def call(submission, submitters = nil) def call(submission, submitters = nil, params = {})
submitters ||= submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob) submitters ||= submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob)
serialized_submitters = submitters.map { |submitter| Submitters::SerializeForApi.call(submitter) } serialized_submitters = submitters.map { |submitter| Submitters::SerializeForApi.call(submitter) }
@ -32,6 +32,10 @@ module Submissions
if submitters.all?(&:completed_at?) if submitters.all?(&:completed_at?)
last_submitter = submitters.max_by(&: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[:documents] = serialized_submitters.find { |e| e['id'] == last_submitter.id }['documents']
json[:status] = 'completed' json[:status] = 'completed'
json[:completed_at] = last_submitter.completed_at json[:completed_at] = last_submitter.completed_at
@ -45,5 +49,14 @@ module Submissions
json json
end end
def build_combined_url(submitter, submission)
return unless submitter.completed_at?
attachment = submission.combined_document_attachment
attachment ||= Submissions::GenerateCombinedAttachment.call(submitter)
ActiveStorage::Blob.proxy_url(attachment.blob)
end
end end
end end

Loading…
Cancel
Save