diff --git a/lib/submissions/serialize_for_api.rb b/lib/submissions/serialize_for_api.rb index dcfac7fe..11ab98a1 100644 --- a/lib/submissions/serialize_for_api.rb +++ b/lib/submissions/serialize_for_api.rb @@ -23,11 +23,9 @@ module Submissions serialized_submitters = submitters.map { |submitter| Submitters::SerializeForApi.call(submitter, params:) } - json = submission.as_json( - SERIALIZE_PARAMS.deep_merge( - include: { submission_events: { only: %i[id submitter_id event_type event_timestamp] } } - ) - ) + json = submission.as_json(SERIALIZE_PARAMS) + + json['submission_events'] = Submitters::SerializeForApi.serialize_events(submission.submission_events) if submitters.all?(&:completed_at?) last_submitter = submitters.max_by(&:completed_at) diff --git a/lib/submitters/serialize_for_api.rb b/lib/submitters/serialize_for_api.rb index 9e5c7787..297bf957 100644 --- a/lib/submitters/serialize_for_api.rb +++ b/lib/submitters/serialize_for_api.rb @@ -29,6 +29,7 @@ module Submitters additional_attrs['values'] = SerializeForWebhook.build_values_array(submitter) additional_attrs['documents'] = SerializeForWebhook.build_documents_array(submitter) if with_documents additional_attrs['preferences'] = submitter.preferences.except('default_values') + additional_attrs['submission_events'] = serialize_events(submitter.submission_events) if with_events additional_attrs['role'] = (submitter.submission.template_submitters || @@ -41,9 +42,14 @@ module Submitters include_params = {} include_params[:template] = { only: %i[id name created_at updated_at] } if with_template - include_params[:submission_events] = { only: %i[id submitter_id event_type event_timestamp] } if with_events submitter.as_json(SERIALIZE_PARAMS.merge(include: include_params)).merge(additional_attrs) end + + def serialize_events(events) + events.map do |event| + event.as_json(only: %i[id submitter_id event_type event_timestamp]).merge('data' => event.data.slice('reason')) + end + end end end