From 73734b0de7a1e6f0bc3bd6ef980d4ea99020d729 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Mon, 13 Jul 2026 19:14:52 +0300 Subject: [PATCH] add variables_schema response --- lib/templates/serialize_for_api.rb | 19 +++++++++++++------ spec/requests/templates_spec.rb | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/templates/serialize_for_api.rb b/lib/templates/serialize_for_api.rb index 64907f50..d9ba79fa 100644 --- a/lib/templates/serialize_for_api.rb +++ b/lib/templates/serialize_for_api.rb @@ -4,9 +4,9 @@ module Templates module SerializeForApi SERIALIZE_PARAMS = { only: %w[ - id archived_at fields name preferences schema - slug source submitters created_at updated_at - author_id external_id folder_id shared_link + id name slug schema submitters fields variables_schema + preferences source created_at updated_at archived_at author_id + external_id folder_id shared_link ], methods: %i[application_key folder_name], include: { author: { only: %i[id email first_name last_name] } } @@ -22,7 +22,16 @@ module Templates preview_image_attachments ||= preload_preview_image_attachments(schema_documents, dynamic_documents) - json['documents'] = template.schema.filter_map do |item| + json['variables_schema'] ||= {} + + json['documents'] = build_documents_array(template, schema_documents, dynamic_documents, + preview_image_attachments, expires_at) + + json + end + + def build_documents_array(template, schema_documents, dynamic_documents, preview_image_attachments, expires_at) + template.schema.filter_map do |item| if item['dynamic'] dynamic_document = dynamic_documents.find { |e| e.uuid == item['attachment_uuid'] } @@ -44,8 +53,6 @@ module Templates 'filename' => attachment.filename } end - - json end def preload_dynamic_documents(template) diff --git a/spec/requests/templates_spec.rb b/spec/requests/templates_spec.rb index 94c4205b..0cf3e1ab 100644 --- a/spec/requests/templates_spec.rb +++ b/spec/requests/templates_spec.rb @@ -230,6 +230,7 @@ describe 'Templates API' do name: 'sample-document' } ], + variables_schema: template.variables_schema || {}, shared_link: template.shared_link, author_id: author.id, archived_at: nil,