alchemy-json_api 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf27f9f29046c7ad0e2d417d3c9cca5e0d58d59c7bc729119d76f37adeaa4b28
4
- data.tar.gz: 697deefd22185ca5df6811f9687129e34c33e445feacae02f71fd045f5e96830
3
+ metadata.gz: 3046cd47b8e5d362917e2c8b595bc25c338e4bdf94a71dabb21794c1aabf913a
4
+ data.tar.gz: 0670ad88fa25050738ce80692e1004b8b0016b3c25df8596f76fe0b054ed4e51
5
5
  SHA512:
6
- metadata.gz: 9d6fc09988a259d084f4e34440985dbe85122c191342bf7b4b722b559f1e3d9500ffd7ab3e6e4c32748a946305ca5b96fc0ff13fcb9236d73626b57116e8bf70
7
- data.tar.gz: 139fc4a4b1e17957dd1cddad50a6f26601e773adb5b83b41a0fb2234cddc58d6f9aa24f24000f00607fa64cee0d3e7304105f396204c9c72fcd50c500e1d3460
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[:id])
37
+ page_scope.find_by(id: params[:path])
38
38
  end
39
39
 
40
40
  def load_page_by_urlname
41
- # The route param is called :id although it might be a string
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
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  require "alchemy/json_api/essence_serializer"
3
- require "alchemy/json_api/link_helper"
4
3
 
5
4
  module Alchemy::JsonApi
6
5
  class EssenceFileSerializer
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  require "alchemy/json_api/essence_serializer"
3
- require "alchemy/json_api/link_helper"
4
3
 
5
4
  module Alchemy::JsonApi
6
5
  class EssenceNodeSerializer
@@ -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
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  require "alchemy/json_api/essence_serializer"
3
- require "alchemy/json_api/link_helper"
4
3
 
5
4
  module Alchemy::JsonApi
6
5
  class EssencePictureSerializer
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  Alchemy::JsonApi::Engine.routes.draw do
3
- resources :pages, only: [:show, :index]
4
- resources :layout_pages, only: [:show, :index]
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
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Alchemy
3
3
  module JsonApi
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
  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.2.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-09-15 00:00:00.000000000 Z
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/link_helper.rb
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