adjust api completion

pull/217/head
Pete Matsyburka 2 years ago
parent 843f6c405f
commit ff74574e84

@ -30,7 +30,7 @@ Metrics/ParameterLists:
Max: 10
Metrics/MethodLength:
Max: 25
Max: 30
Exclude:
- 'db/migrate/**'

@ -33,12 +33,18 @@ module Api
def show
submitters = @submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob)
serialized_submitters = submitters.map do |submitter|
Submissions::EnsureResultGenerated.call(submitter) if submitter.completed_at?
submitters.each do |submitter|
if submitter.completed_at? && submitter.documents_attachments.blank?
submitter.documents_attachments = Submissions::EnsureResultGenerated.call(submitter)
end
end
Submitters::SerializeForApi.call(submitter)
if @submission.audit_trail_attachment.blank? && submitters.all?(&:completed_at?)
@submission.audit_trail_attachment = Submissions::GenerateAuditTrail.call(@submission)
end
serialized_submitters = submitters.map { |submitter| Submitters::SerializeForApi.call(submitter) }
json = @submission.as_json(
serialize_params.deep_merge(
include: { submission_events: { only: %i[id submitter_id event_type event_timestamp] } }
@ -80,6 +86,12 @@ module Api
Submissions.send_signature_requests(submissions)
submissions.each do |submission|
if submission.submitters.all?(&:completed_at?) && submission.submitters.last
ProcessSubmitterCompletionJob.perform_later(submission.submitters.last)
end
end
render json: submissions.flat_map(&:submitters)
rescue Submitters::NormalizeValues::UnknownFieldName, Submitters::NormalizeValues::UnknownSubmitterName => e
render json: { error: e.message }, status: :unprocessable_entity
@ -118,8 +130,13 @@ module Api
params:
)
Submissions::NormalizeParamUtils.save_default_value_attachments!(attachments,
submissions.flat_map(&:submitters))
submitters = submissions.flat_map(&:submitters)
Submissions::NormalizeParamUtils.save_default_value_attachments!(attachments, submitters)
submitters.each do |submitter|
SubmissionEvents.create_with_tracking_data(submitter, 'api_complete_form', request) if submitter.completed_at?
end
submissions
end

@ -55,6 +55,8 @@ module Api
@submitter.save!
@submitter.submission.save!
SubmissionEvents.create_with_tracking_data(@submitter, 'api_complete_form', request) if @submitter.completed_at?
end
if @submitter.completed_at?

@ -46,7 +46,8 @@ class SubmissionEvent < ApplicationRecord
phone_verified: 'phone_verified',
start_form: 'start_form',
view_form: 'view_form',
complete_form: 'complete_form'
complete_form: 'complete_form',
api_complete_form: 'api_complete_form'
}, scope: false
private

@ -14,7 +14,8 @@ module SubmissionEvents
phone_verified: 'Phone verified',
start_form: 'Submission started',
view_form: 'Form viewed',
complete_form: 'Submission completed'
complete_form: 'Submission completed',
api_complete_form: 'Submission completed via API'
}.freeze
module_function

@ -66,7 +66,7 @@ module Submissions
first_submitter =
submission.template_submitters.filter_map { |s| submitters.find { |e| e.uuid == s['uuid'] } }.first
Submitters.send_signature_requests([first_submitter])
Submitters.send_signature_requests([first_submitter]) if first_submitter
else
Submitters.send_signature_requests(submitters)
end

@ -23,9 +23,11 @@ module Submissions
else
submitter.document_generation_events.create!(event_name: events.present? ? :retry : :start)
GenerateResultAttachments.call(submitter)
documents = GenerateResultAttachments.call(submitter)
submitter.document_generation_events.create!(event_name: :complete)
documents
end
rescue ActiveRecord::RecordNotUnique
sleep WAIT_FOR_RETRY
@ -49,7 +51,7 @@ module Submissions
DocumentGenerationEvent.where(submitter:).order(:created_at).last
end
break last_event if last_event.event_name.in?(%w[complete fail])
break submitter.documents if last_event.event_name.in?(%w[complete fail])
raise WaitForCompleteTimeout if total_wait_time > CHECK_COMPLETE_TIMEOUT
end

@ -279,6 +279,7 @@ module Submissions
sign_params = {
reason: SIGN_REASON,
certificate: pkcs.certificate,
doc_mdp_permissions: :no_changes,
key: pkcs.key,
certificate_chain: pkcs.ca_certs || []
}

Loading…
Cancel
Save