add status and documents to submission get api

This commit is contained in:
Pete Matsyburka
2023-12-23 22:24:57 +02:00
parent baaf1f510f
commit 08c780d309
2 changed files with 22 additions and 12 deletions
+20 -11
View File
@@ -31,24 +31,33 @@ module Api
end
def show
serialized_subbmitters =
@submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob).map do |submitter|
Submissions::EnsureResultGenerated.call(submitter) if submitter.completed_at?
submitters = @submission.submitters.preload(documents_attachments: :blob, attachments_attachments: :blob)
Submitters::SerializeForApi.call(submitter)
end
serialized_submitters = submitters.map do |submitter|
Submissions::EnsureResultGenerated.call(submitter) if submitter.completed_at?
Submitters::SerializeForApi.call(submitter)
end
json = @submission.as_json(
serialize_params.deep_merge(
include: {
submission_events: {
only: %i[id submitter_id event_type event_timestamp]
}
}
include: { 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:
end