add status and documents to submission get api

pull/217/head
Pete Matsyburka 2 years ago
parent baaf1f510f
commit 08c780d309

@ -31,24 +31,33 @@ module Api
end end
def show def show
serialized_subbmitters = submitters = @submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob)
@submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob).map do |submitter|
Submissions::EnsureResultGenerated.call(submitter) if submitter.completed_at?
Submitters::SerializeForApi.call(submitter) serialized_submitters = submitters.map do |submitter|
end Submissions::EnsureResultGenerated.call(submitter) if submitter.completed_at?
Submitters::SerializeForApi.call(submitter)
end
json = @submission.as_json( json = @submission.as_json(
serialize_params.deep_merge( serialize_params.deep_merge(
include: { include: { submission_events: { only: %i[id submitter_id event_type event_timestamp] } }
submission_events: {
only: %i[id submitter_id event_type event_timestamp]
}
}
) )
) )
json[:submitters] = serialized_subbmitters if submitters.all?(&:completed_at?)
last_submitter = submitters.max_by(&:completed_at)
json[:documents] = serialized_submitters.find { |e| e['id'] == last_submitter.id }['documents']
json[:status] = 'completed'
json[:completed_at] = last_submitter.completed_at
else
json[:documents] = []
json[:status] = 'pending'
json[:completed_at] = nil
end
json[:submitters] = serialized_submitters
render json: render json:
end end

@ -19,7 +19,8 @@ module Submitters
serialize_params = { serialize_params = {
include: {}, include: {},
only: %i[id slug uuid name email phone completed_at application_key only: %i[id slug uuid name email phone completed_at application_key
opened_at sent_at created_at updated_at] opened_at sent_at created_at updated_at],
methods: %i[status]
} }
serialize_params[:include][:template] = { only: %i[id name created_at updated_at] } if with_template serialize_params[:include][:template] = { only: %i[id name created_at updated_at] } if with_template

Loading…
Cancel
Save