From d6ac6bc6187242b0d9859261f2f1f636834093f9 Mon Sep 17 00:00:00 2001 From: Jason Gessner Date: Sun, 20 Nov 2022 22:17:20 -0500 Subject: [PATCH] Add partials that fix explanation rendering. --- app/views/apitome/docs/_example.html.erb | 49 ++++++++++++++++++++ app/views/apitome/docs/_explanation.html.erb | 3 ++ 2 files changed, 52 insertions(+) create mode 100644 app/views/apitome/docs/_example.html.erb create mode 100644 app/views/apitome/docs/_explanation.html.erb diff --git a/app/views/apitome/docs/_example.html.erb b/app/views/apitome/docs/_example.html.erb new file mode 100644 index 00000000..abf83260 --- /dev/null +++ b/app/views/apitome/docs/_example.html.erb @@ -0,0 +1,49 @@ +

<%= example['description'] %>

+ +<%= render(partial: 'apitome/docs/explanation', locals: {explanation: example['resource_explanation']}) unless example['resource_explanation'].nil? %> +<%= render partial: 'apitome/docs/endpoint', locals: {method: example['http_method'], endpoint: example['route']} %> +<%= render partial: 'apitome/docs/params', locals: {params: example['parameters']} if example['parameters'].size > 0 %> + +<% example['requests'].each_with_index do |request, index| %> +
"> +

<%= t(:request, scope: :apitome) %>

+
+ <% begin %> + <%= render partial: 'apitome/docs/route', locals: {request: request, index: index} %> + <%= render partial: 'apitome/docs/headers', locals: {request: request, index: index, headers: request['request_headers']} %> + <%= render partial: 'apitome/docs/query', locals: {request: request, index: index} unless request['request_query_parameters'].empty? %> + <%= render partial: 'apitome/docs/body', locals: {request: request, index: index, body: request['request_body'], type: request['request_content_type']} if request['request_body'] %> + <%= render partial: 'apitome/docs/curl', locals: {request: request, index: index} if request['curl'] %> + <% + rescue => e + if Apitome.configuration.example_error_handler + Apitome.configuration.example_error_handler.call(e, "request", request) + else + raise + end + end + %> +
+ +

<%= t(:response, scope: :apitome) %>

+
+ <% begin %> + <%- if Apitome.configuration.simulated_response %> + <%= link_to('Simulated Response', simulated_path(example[:link])) if example[:link].present? %> + <%- end %> + <%= render partial: 'apitome/docs/response_fields', locals: {params: example['response_fields']} if example['response_fields'].size > 0 %> + <%= render partial: 'apitome/docs/status', locals: {request: request, index: index} %> + <%= render partial: 'apitome/docs/headers', locals: {request: request, index: index, headers: request['response_headers']} %> + <%= render partial: 'apitome/docs/body', locals: {request: request, index: index, body: request['response_body'], type: request['response_content_type']} if request['response_body'] %> + <% + rescue => e + if Apitome.configuration.example_error_handler + Apitome.configuration.example_error_handler.call(e, "response", request) + else + raise + end + end + %> +
+
+<% end %> \ No newline at end of file diff --git a/app/views/apitome/docs/_explanation.html.erb b/app/views/apitome/docs/_explanation.html.erb new file mode 100644 index 00000000..bf8207df --- /dev/null +++ b/app/views/apitome/docs/_explanation.html.erb @@ -0,0 +1,3 @@ +
+ <%= raw rendered_markdown(example['resource_explanation'].strip_heredoc) %> +
\ No newline at end of file