decidim-api 0.26.10 → 0.27.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/decidim/api/documentation_controller.rb +21 -0
- data/app/packs/entrypoints/decidim_api_docs.js +1 -26
- data/app/packs/entrypoints/decidim_api_docs.scss +1318 -0
- data/app/views/decidim/api/documentation/graphql_docs_template.html.erb +7 -0
- data/app/views/decidim/api/documentation/show.html.erb +2 -11
- data/app/views/decidim/api/graphiql/show.html.erb +3 -1
- data/app/views/layouts/decidim/api/documentation.html.erb +1 -4
- data/config/routes.rb +1 -0
- data/lib/decidim/api/schema.rb +3 -3
- data/lib/decidim/api/test/component_context.rb +2 -2
- data/lib/decidim/api/version.rb +1 -1
- data/lib/decidim/api.rb +17 -0
- data/lib/tasks/decidim_api_docs.rake +34 -0
- metadata +23 -29
- data/app/helpers/decidim/api/application_helper.rb +0 -24
- data/app/packs/stylesheets/decidim/api/docs.scss +0 -61
- data/config/environment.rb +0 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 375abae8676bbaa74f4c9154b1f5bd5054f11a8aea0e55dd24c95a8301194639
         | 
| 4 | 
            +
              data.tar.gz: 40b74c9f85f075c6837bfbdc4b0b595ddac35d719aaef847e03154830e47acc8
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6c33a5d70f54b4c86a75bfdb632fdb3923fcf4123a24cf7600499e975192bf81a6348641161b07536dc149e24283a5f8b594358c86681dc8cdc7dc683aca80e4
         | 
| 7 | 
            +
              data.tar.gz: deb1025710b486eb047c35b498b83db87497852cfacdfd6e2098de05351aaaacc4e77010851d55b8e758c42420f504b848b546cd0257d63c60ddf66303f2531f
         | 
| @@ -6,6 +6,27 @@ module Decidim | |
| 6 6 | 
             
                # the Schema to be executed, later returning the response as JSON.
         | 
| 7 7 | 
             
                class DocumentationController < Api::ApplicationController
         | 
| 8 8 | 
             
                  layout "decidim/api/documentation"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                  helper_method :static_api_docs_content
         | 
| 11 | 
            +
                  before_action :set_cache_headers
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  private
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  def static_api_docs_content
         | 
| 16 | 
            +
                    render_to_string(File.join("static", "api", "docs", *safe_content_path, "index"), layout: false)
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  def safe_content_path
         | 
| 20 | 
            +
                    return "" unless params[:path]
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                    params[:path].split("/").excluding("..", ".")
         | 
| 23 | 
            +
                  end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                  def set_cache_headers
         | 
| 26 | 
            +
                    response.headers["Cache-Control"] = "no-cache, no-store"
         | 
| 27 | 
            +
                    response.headers["Pragma"] = "no-cache"
         | 
| 28 | 
            +
                    response.headers["Expires"] = "Mon, 01 Jan 1990 00:00:00 GMT"
         | 
| 29 | 
            +
                  end
         | 
| 9 30 | 
             
                end
         | 
| 10 31 | 
             
              end
         | 
| 11 32 | 
             
            end
         | 
| @@ -1,26 +1 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 3 | 
            -
            import jQuery from "jquery"
         | 
| 4 | 
            -
            import { render } from "react-dom"
         | 
| 5 | 
            -
            import { GraphQLDocs } from "graphql-docs"
         | 
| 6 | 
            -
            import "stylesheets/decidim/api/docs.scss"
         | 
| 7 | 
            -
             | 
| 8 | 
            -
            const fetcherFactory = (path) => {
         | 
| 9 | 
            -
              return (query) => {
         | 
| 10 | 
            -
                return jQuery.ajax({
         | 
| 11 | 
            -
                  url: path,
         | 
| 12 | 
            -
                  data: JSON.stringify({ query }),
         | 
| 13 | 
            -
                  method: "POST",
         | 
| 14 | 
            -
                  contentType: "application/json",
         | 
| 15 | 
            -
                  dataType: "json"
         | 
| 16 | 
            -
                });
         | 
| 17 | 
            -
              };
         | 
| 18 | 
            -
            }
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            window.renderDocumentation = (path) => {
         | 
| 21 | 
            -
              render(
         | 
| 22 | 
            -
                <GraphQLDocs fetcher={fetcherFactory(path)} />,
         | 
| 23 | 
            -
                document.getElementById("documentation"),
         | 
| 24 | 
            -
              );
         | 
| 25 | 
            -
            };
         | 
| 26 | 
            -
             | 
| 1 | 
            +
            import "entrypoints/decidim_api_docs.scss";
         |