ensure generated doc completed
This commit is contained in:
@@ -23,9 +23,9 @@ class SubmissionsDownloadController < ApplicationController
|
|||||||
|
|
||||||
last_submitter = submitter.submission.submitters.where.not(completed_at: nil).order(:completed_at).last
|
last_submitter = submitter.submission.submitters.where.not(completed_at: nil).order(:completed_at).last
|
||||||
|
|
||||||
Submissions::EnsureResultGenerated.call(last_submitter)
|
return head :not_found unless last_submitter
|
||||||
|
|
||||||
return head :not_found unless last_submitter.completed_at?
|
Submissions::EnsureResultGenerated.call(last_submitter)
|
||||||
|
|
||||||
if last_submitter.completed_at < TTL.ago && !signature_valid && !current_user_submitter?(last_submitter)
|
if last_submitter.completed_at < TTL.ago && !signature_valid && !current_user_submitter?(last_submitter)
|
||||||
Rollbar.info("TTL: #{last_submitter.id}") if defined?(Rollbar)
|
Rollbar.info("TTL: #{last_submitter.id}") if defined?(Rollbar)
|
||||||
|
|||||||
@@ -196,4 +196,20 @@ module Submissions
|
|||||||
end
|
end
|
||||||
end.exclude?(false)
|
end.exclude?(false)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def regenerate_documents(submission)
|
||||||
|
submitters = submission.submitters.where.not(completed_at: nil).preload(:documents_attachments)
|
||||||
|
|
||||||
|
submitters.each { |submitter| submitter.documents.each(&:destroy!) }
|
||||||
|
|
||||||
|
submission.submitters.where.not(completed_at: nil).order(:completed_at).each do |submitter|
|
||||||
|
GenerateResultAttachments.call(submitter)
|
||||||
|
end
|
||||||
|
|
||||||
|
return if submission.combined_document_attachment.blank?
|
||||||
|
|
||||||
|
submission.combined_document_attachment.destroy!
|
||||||
|
|
||||||
|
Submissions::GenerateCombinedAttachment.call(submission.submitters.completed.order(:completed_at).last)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -7,11 +7,15 @@ module Submissions
|
|||||||
CHECK_COMPLETE_TIMEOUT = 90.seconds
|
CHECK_COMPLETE_TIMEOUT = 90.seconds
|
||||||
|
|
||||||
WaitForCompleteTimeout = Class.new(StandardError)
|
WaitForCompleteTimeout = Class.new(StandardError)
|
||||||
|
NotCompletedYet = Class.new(StandardError)
|
||||||
|
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def call(submitter)
|
def call(submitter)
|
||||||
return [] unless submitter
|
return [] unless submitter
|
||||||
|
|
||||||
|
raise NotCompletedYet unless submitter.completed_at?
|
||||||
|
|
||||||
return submitter.documents if ApplicationRecord.uncached { submitter.document_generation_events.complete.exists? }
|
return submitter.documents if ApplicationRecord.uncached { submitter.document_generation_events.complete.exists? }
|
||||||
|
|
||||||
events =
|
events =
|
||||||
|
|||||||
Reference in New Issue
Block a user