delivery-sdk-ruby 0.13.0 → 0.14.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/README.md +14 -0
- data/lib/delivery-sdk-ruby.rb +1 -0
- data/lib/delivery/builders/url_builder.rb +2 -0
- data/lib/delivery/client/delivery_client.rb +9 -0
- data/lib/delivery/client/delivery_query.rb +4 -1
- data/lib/delivery/responses/delivery_element_response.rb +23 -0
- data/lib/delivery/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 699ce3c4f3fbb0ede944795f2062ca3f475959465a0da0768fb82f397af9e867
|
4
|
+
data.tar.gz: e1ae507b2a597758ee8902728305e101c255784bc46d8283c441bd613ea43ea6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b10106369fb1ec0eaa6a816d0f37961dba342e6b5450bf65e72fd8a7b2254444d63fbda027234685989b881d2179939349de3d7c2a076b8427dd9a3764b2b7eb
|
7
|
+
data.tar.gz: 543364d151630c4c0ffaedfbe493c72e7c6491b858127a2e75aae966ebbb83d00f449e3941ffc1cd07c5c6558257de0bbcd35f1498c95f32506a0cee8bc5459c
|
data/README.md
CHANGED
@@ -304,6 +304,20 @@ delivery_client.taxonomy('personas').execute do |response|
|
|
304
304
|
end
|
305
305
|
```
|
306
306
|
|
307
|
+
## Retreiveing content type elements
|
308
|
+
|
309
|
+
Kentico Cloud provides an [endpoint](https://developer.kenticocloud.com/v1/reference#view-a-content-type-element) for obtaining details about a specific element of a content type. In the Ruby SDK, you can use the `.element` method:
|
310
|
+
|
311
|
+
```ruby
|
312
|
+
delivery_client.element('brewer', 'product_status').execute do |response|
|
313
|
+
puts response.element.type # taxonomy
|
314
|
+
end
|
315
|
+
```
|
316
|
+
|
317
|
+
This returns a `Delivery::Responses::DeliveryElementResponse` where the `element` attribute is a dynamic OStruct representation of the JSON response. This means that you can access any property of the element by simply typing the name as in the above example.
|
318
|
+
|
319
|
+
The element will always contain __codename__, __type__, and __name__, but multiple choice elements will also contain __options__ and taxonomy elements will contain __taxonomy_group__.
|
320
|
+
|
307
321
|
## Resolving links
|
308
322
|
|
309
323
|
If a rich text element contains links to other content items, you will need to generate the URLs to those items. You can do this by registering a `Delivery::Resolvers::ContentLinkResolver` when you instantiate the DeliveryClient. When you create a ContentLinkResolver, you must pass a method that will return the URL:
|
data/lib/delivery-sdk-ruby.rb
CHANGED
@@ -10,6 +10,7 @@ require File.dirname(__FILE__) + '/delivery/responses/delivery_type_listing_resp
|
|
10
10
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_type_response'
|
11
11
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_taxonomy_listing_response'
|
12
12
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_taxonomy_response'
|
13
|
+
require File.dirname(__FILE__) + '/delivery/responses/delivery_element_response'
|
13
14
|
require File.dirname(__FILE__) + '/delivery/resolvers/content_link_resolver'
|
14
15
|
require File.dirname(__FILE__) + '/delivery/resolvers/inline_content_item_resolver'
|
15
16
|
require File.dirname(__FILE__) + '/delivery/builders/image_transformation_builder'
|
@@ -7,6 +7,7 @@ module Delivery
|
|
7
7
|
QUERY_TYPE_TYPES = 'QUERY_TYPE_TYPES'.freeze
|
8
8
|
QUERY_TYPE_ITEMS = 'QUERY_TYPE_ITEMS'.freeze
|
9
9
|
QUERY_TYPE_TAXONOMIES = 'QUERY_TYPE_TAXONOMIES'.freeze
|
10
|
+
QUERY_TYPE_ELEMENT = 'QUERY_TYPE_ELEMENT'.freeze
|
10
11
|
|
11
12
|
# Executes requests against the Kentico Cloud Delivery API.
|
12
13
|
class DeliveryClient
|
@@ -72,5 +73,13 @@ module Delivery
|
|
72
73
|
code_name: code_name,
|
73
74
|
query_type: QUERY_TYPE_TAXONOMIES
|
74
75
|
end
|
76
|
+
|
77
|
+
def element(content_type, element)
|
78
|
+
DeliveryQuery.new project_id: @project_id,
|
79
|
+
secure_key: @secure_key,
|
80
|
+
code_name: element,
|
81
|
+
content_type: content_type,
|
82
|
+
query_type: QUERY_TYPE_ELEMENT
|
83
|
+
end
|
75
84
|
end
|
76
85
|
end
|
@@ -20,7 +20,8 @@ module Delivery
|
|
20
20
|
:content_link_url_resolver,
|
21
21
|
:inline_content_item_resolver,
|
22
22
|
:query_type,
|
23
|
-
:query_string
|
23
|
+
:query_string,
|
24
|
+
:content_type
|
24
25
|
|
25
26
|
# Setter for url, returns self for chaining
|
26
27
|
# .url represents *manually* configured urls, otherwise final url is
|
@@ -169,6 +170,8 @@ module Delivery
|
|
169
170
|
else
|
170
171
|
Delivery::Responses::DeliveryTaxonomyResponse.new JSON.parse(response)
|
171
172
|
end
|
173
|
+
when Delivery::QUERY_TYPE_ELEMENT
|
174
|
+
Delivery::Responses::DeliveryElementResponse.new JSON.parse(response)
|
172
175
|
end
|
173
176
|
end
|
174
177
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'delivery/responses/response_base'
|
2
|
+
|
3
|
+
module Delivery
|
4
|
+
module Responses
|
5
|
+
# Returned by DeliveryClient.element containing a single element
|
6
|
+
class DeliveryElementResponse < ResponseBase
|
7
|
+
def element
|
8
|
+
@element unless @element.nil?
|
9
|
+
@element = JSON.parse(
|
10
|
+
JSON.generate(@response),
|
11
|
+
object_class: OpenStruct
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(response)
|
16
|
+
@response = response
|
17
|
+
super 200,
|
18
|
+
"Success, '#{element.codename}' returned",
|
19
|
+
JSON.generate(@response)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/delivery/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delivery-sdk-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Dugre
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/delivery/query_parameters/query_string.rb
|
118
118
|
- lib/delivery/resolvers/content_link_resolver.rb
|
119
119
|
- lib/delivery/resolvers/inline_content_item_resolver.rb
|
120
|
+
- lib/delivery/responses/delivery_element_response.rb
|
120
121
|
- lib/delivery/responses/delivery_item_listing_response.rb
|
121
122
|
- lib/delivery/responses/delivery_item_response.rb
|
122
123
|
- lib/delivery/responses/delivery_taxonomy_listing_response.rb
|