ensure generated doc completed

pull/475/head
Pete Matsyburka 7 months ago
parent 0abf48ddba
commit 42c30bdfd0

@ -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 =

Loading…
Cancel
Save