add combine pdf toggle
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -21,6 +21,12 @@ module Submitters
|
||||
end
|
||||
|
||||
def select_attachments_for_download(submitter)
|
||||
if AccountConfig.exists?(account_id: submitter.submission.account_id,
|
||||
key: AccountConfig::COMBINE_PDF_RESULT_KEY,
|
||||
value: true) && submitter.submission.combined_document_attachment
|
||||
return [submitter.submission.combined_document_attachment]
|
||||
end
|
||||
|
||||
original_documents = submitter.submission.template.documents.preload(:blob)
|
||||
is_more_than_two_images = original_documents.count(&:image?) > 1
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ module Submitters
|
||||
'template' => submitter.template.as_json(only: %i[id name external_id created_at updated_at],
|
||||
methods: %i[folder_name]),
|
||||
'submission' => {
|
||||
**submitter.submission.slice(:id, :audit_log_url, :created_at),
|
||||
**submitter.submission.slice(:id, :audit_log_url, :combined_document_url, :created_at),
|
||||
status: build_submission_status(submitter.submission),
|
||||
url: r.submissions_preview_url(submitter.submission.slug, **Docuseal.default_url_options)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user