alchemy-json_api 0.2.0 → 0.3.0
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/alchemy/json_api/pages_controller.rb +2 -3
- data/app/serializers/alchemy/json_api/essence_file_serializer.rb +0 -1
- data/app/serializers/alchemy/json_api/essence_node_serializer.rb +0 -1
- data/app/serializers/alchemy/json_api/essence_page_serializer.rb +22 -0
- data/app/serializers/alchemy/json_api/essence_picture_serializer.rb +0 -1
- data/config/routes.rb +4 -2
- data/lib/alchemy/json_api/test_support/essence_serializer_behaviour.rb +18 -0
- data/lib/alchemy/json_api/version.rb +1 -1
- metadata +7 -6
- data/lib/alchemy/json_api/link_helper.rb +0 -16
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3046cd47b8e5d362917e2c8b595bc25c338e4bdf94a71dabb21794c1aabf913a
         | 
| 4 | 
            +
              data.tar.gz: 0670ad88fa25050738ce80692e1004b8b0016b3c25df8596f76fe0b054ed4e51
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9d48b6c6692e7330db7daeaedc03c177a89ec55225f0f3c96145fd42f7eccf972cc757a47120279f3cf34dffdb3b92aba9b8974a420743a7c0f2f35454fd5f68
         | 
| 7 | 
            +
              data.tar.gz: 9071f12da6fe44f21971cb85d53890691f0702f73396ec2e5ef08e7d6439d601aaa6625815c1a6867f15c25cdd23f1c69af67d1111769368df2d2b902e602407
         | 
| @@ -34,12 +34,11 @@ module Alchemy | |
| 34 34 | 
             
                  end
         | 
| 35 35 |  | 
| 36 36 | 
             
                  def load_page_by_id
         | 
| 37 | 
            -
                    page_scope.find_by(id: params[: | 
| 37 | 
            +
                    page_scope.find_by(id: params[:path])
         | 
| 38 38 | 
             
                  end
         | 
| 39 39 |  | 
| 40 40 | 
             
                  def load_page_by_urlname
         | 
| 41 | 
            -
                     | 
| 42 | 
            -
                    page_scope.find_by(urlname: params[:id])
         | 
| 41 | 
            +
                    page_scope.find_by(urlname: params[:path])
         | 
| 43 42 | 
             
                  end
         | 
| 44 43 |  | 
| 45 44 | 
             
                  def page_scope
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
            require "alchemy/json_api/essence_serializer"
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Alchemy::JsonApi
         | 
| 5 | 
            +
              class EssencePageSerializer
         | 
| 6 | 
            +
                include EssenceSerializer
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                attribute :ingredient do |essence|
         | 
| 9 | 
            +
                  essence.page&.url_path
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                attribute :page_name do |essence|
         | 
| 13 | 
            +
                  essence.page&.name
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                attribute :page_url do |essence|
         | 
| 17 | 
            +
                  essence.page&.url_path
         | 
| 18 | 
            +
                end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                has_one :page, record_type: :page, serializer: PageSerializer
         | 
| 21 | 
            +
              end
         | 
| 22 | 
            +
            end
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -1,5 +1,7 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 | 
             
            Alchemy::JsonApi::Engine.routes.draw do
         | 
| 3 | 
            -
              resources :pages, only: [: | 
| 4 | 
            -
               | 
| 3 | 
            +
              resources :pages, only: [:index]
         | 
| 4 | 
            +
              get "pages/*path" => "pages#show", as: :page
         | 
| 5 | 
            +
              resources :layout_pages, only: [:index]
         | 
| 6 | 
            +
              get "layout_pages/*path" => "layout_pages#show", as: :layout_page
         | 
| 5 7 | 
             
            end
         | 
| @@ -0,0 +1,18 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
            RSpec.shared_examples "an essence serializer" do
         | 
| 3 | 
            +
              describe "attributes" do
         | 
| 4 | 
            +
                subject { serializer.serializable_hash[:data][:attributes] }
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                it "has the right keys and values" do
         | 
| 7 | 
            +
                  expect(subject).to have_key(:ingredient)
         | 
| 8 | 
            +
                end
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              describe "relationships" do
         | 
| 12 | 
            +
                subject { serializer.serializable_hash[:data][:relationships] }
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                it "has the right keys and values" do
         | 
| 15 | 
            +
                  expect(subject[:element]).to eq(data: { id: essence.element.id.to_s, type: :element })
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
              end
         | 
| 18 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: alchemy-json_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Martin Meyerhoff
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020- | 
| 11 | 
            +
            date: 2020-10-28 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: alchemy_cms
         | 
| @@ -114,6 +114,7 @@ files: | |
| 114 114 | 
             
            - app/serializers/alchemy/json_api/essence_html_serializer.rb
         | 
| 115 115 | 
             
            - app/serializers/alchemy/json_api/essence_link_serializer.rb
         | 
| 116 116 | 
             
            - app/serializers/alchemy/json_api/essence_node_serializer.rb
         | 
| 117 | 
            +
            - app/serializers/alchemy/json_api/essence_page_serializer.rb
         | 
| 117 118 | 
             
            - app/serializers/alchemy/json_api/essence_picture_serializer.rb
         | 
| 118 119 | 
             
            - app/serializers/alchemy/json_api/essence_richtext_serializer.rb
         | 
| 119 120 | 
             
            - app/serializers/alchemy/json_api/essence_select_serializer.rb
         | 
| @@ -125,14 +126,14 @@ files: | |
| 125 126 | 
             
            - lib/alchemy/json_api.rb
         | 
| 126 127 | 
             
            - lib/alchemy/json_api/engine.rb
         | 
| 127 128 | 
             
            - lib/alchemy/json_api/essence_serializer.rb
         | 
| 128 | 
            -
            - lib/alchemy/json_api/ | 
| 129 | 
            +
            - lib/alchemy/json_api/test_support/essence_serializer_behaviour.rb
         | 
| 129 130 | 
             
            - lib/alchemy/json_api/version.rb
         | 
| 130 131 | 
             
            - lib/tasks/alchemy/json_api_tasks.rake
         | 
| 131 132 | 
             
            homepage: https://github.com/AlchemyCMS/alchemy-json_api
         | 
| 132 133 | 
             
            licenses:
         | 
| 133 134 | 
             
            - MIT
         | 
| 134 135 | 
             
            metadata: {}
         | 
| 135 | 
            -
            post_install_message: | 
| 136 | 
            +
            post_install_message:
         | 
| 136 137 | 
             
            rdoc_options: []
         | 
| 137 138 | 
             
            require_paths:
         | 
| 138 139 | 
             
            - lib
         | 
| @@ -148,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 148 149 | 
             
                  version: '0'
         | 
| 149 150 | 
             
            requirements: []
         | 
| 150 151 | 
             
            rubygems_version: 3.0.3
         | 
| 151 | 
            -
            signing_key: | 
| 152 | 
            +
            signing_key:
         | 
| 152 153 | 
             
            specification_version: 4
         | 
| 153 154 | 
             
            summary: A JSONAPI compliant API for AlchemyCMS
         | 
| 154 155 | 
             
            test_files: []
         | 
| @@ -1,16 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
            module Alchemy
         | 
| 3 | 
            -
              module JsonApi
         | 
| 4 | 
            -
                module LinkHelper
         | 
| 5 | 
            -
                  def alchemy_link(path_base, object)
         | 
| 6 | 
            -
                    return unless object
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                    if Rails.application.routes.default_url_options[:host]
         | 
| 9 | 
            -
                      Alchemy::Engine.routes.url_helpers.public_send("#{path_base}_url", object)
         | 
| 10 | 
            -
                    else
         | 
| 11 | 
            -
                      Alchemy::Engine.routes.url_helpers.public_send("#{path_base}_path", object)
         | 
| 12 | 
            -
                    end
         | 
| 13 | 
            -
                  end
         | 
| 14 | 
            -
                end
         | 
| 15 | 
            -
              end
         | 
| 16 | 
            -
            end
         |