delivery-sdk-ruby 0.12.1 → 0.13.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 +44 -3
- data/lib/delivery-sdk-ruby.rb +3 -0
- data/lib/delivery/builders/url_builder.rb +6 -0
- data/lib/delivery/client/delivery_client.rb +16 -1
- data/lib/delivery/client/delivery_query.rb +6 -0
- data/lib/delivery/models/taxonomy_group.rb +24 -0
- data/lib/delivery/responses/delivery_item_listing_response.rb +1 -2
- data/lib/delivery/responses/delivery_item_response.rb +1 -2
- data/lib/delivery/responses/delivery_taxonomy_listing_response.rb +32 -0
- data/lib/delivery/responses/delivery_taxonomy_response.rb +22 -0
- data/lib/delivery/responses/delivery_type_listing_response.rb +3 -1
- data/lib/delivery/responses/delivery_type_response.rb +3 -1
- data/lib/delivery/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7029e71c762bf49c74c61390da58f7b47e502211cc5a502e1c017ca8b5dbe320
|
4
|
+
data.tar.gz: 4bce2671a40fb2fc31e4038fd112cf722eb1bdd435b8d565eb1a5c98f22af151
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 978d43e11b2c242ddba7113c4e2593f5ade63790fce3ed91720406954fe0391db7dd5859d4a779e1a6fc6545bdd2a9372fabd64f6e4347442f9e96d9c71781d7
|
7
|
+
data.tar.gz: 1d2d8938e1052b55df02f16ad324965b4c57077602e6449e17368e26751e8225d468e882ca5d2e0d15212bad506bc6ca80adcc65f5440f2f0959e46c6679750c
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
[](https://forums.kenticocloud.com) [](https://kentico-community.slack.com) [](https://rubygems.org/gems/delivery-sdk-ruby)
|
1
|
+
[](https://kentico-community.slack.com) [](https://rubygems.org/gems/delivery-sdk-ruby)
|
3
2
|
|
4
3
|
# Delivery Ruby SDK
|
5
4
|
|
@@ -260,8 +259,50 @@ delivery_client.type('coffee').execute do |response|
|
|
260
259
|
field_type = response.type.elements.product_status.type # taxonomy
|
261
260
|
end
|
262
261
|
```
|
262
|
+
The DeliveryTypeListingResponse also contains pagination data, similar to DeliveryItemListingResponse.
|
263
|
+
|
264
|
+
## Taxonomy
|
265
|
+
|
266
|
+
Use the `.taxonomies` and `.taxonomy(code_name)` endpoints to get information about the taxonomy in your project:
|
267
|
+
|
268
|
+
```ruby
|
269
|
+
# Get all taxonomies
|
270
|
+
delivery_client.taxonomies.execute do |response|
|
271
|
+
response.taxonomies.each do |tax|
|
272
|
+
puts "#{tax.system.name} (#{tax.terms.length})"
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
# Get terms of specific taxonomy
|
277
|
+
delivery_client.taxonomy('personas').execute do |response|
|
278
|
+
puts response.taxonomy.terms.length
|
279
|
+
end
|
280
|
+
```
|
281
|
+
|
282
|
+
Each response will return either a single `Delivery::TaxonomyGroup` or an array of groups. The taxonomy group(s) are accessible at `.taxonomy` and `.taxonomies` for single and multiple queries, respectively.
|
263
283
|
|
264
|
-
|
284
|
+
The `TaxonomyGroup` object contains two attributes `.system` and `.terms` which are dynamic OStruct objects containing the same elements as a standard JSON reponse. For example, given a successful query you could access information about the first term of a group using:
|
285
|
+
|
286
|
+
```ruby
|
287
|
+
taxonomy_group.terms[0].codename
|
288
|
+
```
|
289
|
+
|
290
|
+
Note that the terms of a taxonomy group may also contain terms, for example in Dancing Goat's __Personas__ taxonomy group, which looks like this:
|
291
|
+
|
292
|
+
- Coffee expert
|
293
|
+
- Barista
|
294
|
+
- Cafe owner
|
295
|
+
- Coffee enthusiast
|
296
|
+
- Coffee lover
|
297
|
+
- Coffee blogger
|
298
|
+
|
299
|
+
To get the code name of the first term under the "Coffee expert" term, you could do this:
|
300
|
+
|
301
|
+
```ruby
|
302
|
+
delivery_client.taxonomy('personas').execute do |response|
|
303
|
+
puts response.taxonomy.terms[0].terms[0].codename
|
304
|
+
end
|
305
|
+
```
|
265
306
|
|
266
307
|
## Resolving links
|
267
308
|
|
data/lib/delivery-sdk-ruby.rb
CHANGED
@@ -2,11 +2,14 @@ require File.dirname(__FILE__) + '/delivery/client/delivery_client'
|
|
2
2
|
require File.dirname(__FILE__) + '/delivery/client/delivery_query'
|
3
3
|
require File.dirname(__FILE__) + '/delivery/models/content_item'
|
4
4
|
require File.dirname(__FILE__) + '/delivery/models/content_type'
|
5
|
+
require File.dirname(__FILE__) + '/delivery/models/taxonomy_group'
|
5
6
|
require File.dirname(__FILE__) + '/delivery/query_parameters/filters'
|
6
7
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_item_listing_response'
|
7
8
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_item_response'
|
8
9
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_type_listing_response'
|
9
10
|
require File.dirname(__FILE__) + '/delivery/responses/delivery_type_response'
|
11
|
+
require File.dirname(__FILE__) + '/delivery/responses/delivery_taxonomy_listing_response'
|
12
|
+
require File.dirname(__FILE__) + '/delivery/responses/delivery_taxonomy_response'
|
10
13
|
require File.dirname(__FILE__) + '/delivery/resolvers/content_link_resolver'
|
11
14
|
require File.dirname(__FILE__) + '/delivery/resolvers/inline_content_item_resolver'
|
12
15
|
require File.dirname(__FILE__) + '/delivery/builders/image_transformation_builder'
|
@@ -48,6 +48,12 @@ module Delivery
|
|
48
48
|
else
|
49
49
|
format(URL_TEMPLATE_TYPE, query.code_name)
|
50
50
|
end
|
51
|
+
when Delivery::QUERY_TYPE_TAXONOMIES
|
52
|
+
if query.code_name.nil?
|
53
|
+
URL_TEMPLATE_TAXONOMIES
|
54
|
+
else
|
55
|
+
format(URL_TEMPLATE_TAXONOMY, query.code_name)
|
56
|
+
end
|
51
57
|
end
|
52
58
|
end
|
53
59
|
|
@@ -6,7 +6,8 @@ require 'json'
|
|
6
6
|
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
|
+
|
10
11
|
# Executes requests against the Kentico Cloud Delivery API.
|
11
12
|
class DeliveryClient
|
12
13
|
attr_accessor :use_preview
|
@@ -57,5 +58,19 @@ module Delivery
|
|
57
58
|
q.preview_key = @preview_key
|
58
59
|
q
|
59
60
|
end
|
61
|
+
|
62
|
+
def taxonomies(query_parameters = [])
|
63
|
+
DeliveryQuery.new project_id: @project_id,
|
64
|
+
secure_key: @secure_key,
|
65
|
+
qp: query_parameters,
|
66
|
+
query_type: QUERY_TYPE_TAXONOMIES
|
67
|
+
end
|
68
|
+
|
69
|
+
def taxonomy(code_name)
|
70
|
+
DeliveryQuery.new project_id: @project_id,
|
71
|
+
secure_key: @secure_key,
|
72
|
+
code_name: code_name,
|
73
|
+
query_type: QUERY_TYPE_TAXONOMIES
|
74
|
+
end
|
60
75
|
end
|
61
76
|
end
|
@@ -163,6 +163,12 @@ module Delivery
|
|
163
163
|
else
|
164
164
|
Delivery::Responses::DeliveryTypeResponse.new JSON.parse(response)
|
165
165
|
end
|
166
|
+
when Delivery::QUERY_TYPE_TAXONOMIES
|
167
|
+
if code_name.nil?
|
168
|
+
Delivery::Responses::DeliveryTaxonomyListingResponse.new JSON.parse(response)
|
169
|
+
else
|
170
|
+
Delivery::Responses::DeliveryTaxonomyResponse.new JSON.parse(response)
|
171
|
+
end
|
166
172
|
end
|
167
173
|
end
|
168
174
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Delivery
|
2
|
+
# JSON data of a taxonomy group parsed as OpenStruct objects for dynamic use
|
3
|
+
class TaxonomyGroup
|
4
|
+
def terms
|
5
|
+
@terms unless @terms.nil?
|
6
|
+
@terms = JSON.parse(
|
7
|
+
JSON.generate(@source['terms']),
|
8
|
+
object_class: OpenStruct
|
9
|
+
)
|
10
|
+
end
|
11
|
+
|
12
|
+
def system
|
13
|
+
@system unless @system.nil?
|
14
|
+
@system = JSON.parse(
|
15
|
+
JSON.generate(@source['system']),
|
16
|
+
object_class: OpenStruct
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
def initialize(source)
|
21
|
+
@source = source
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -30,8 +30,7 @@ module Delivery
|
|
30
30
|
@content_link_url_resolver = content_link_url_resolver
|
31
31
|
@inline_content_item_resolver = inline_content_item_resolver
|
32
32
|
super 200,
|
33
|
-
"Success,
|
34
|
-
#{items.length} items returned",
|
33
|
+
"Success, #{items.length} items returned",
|
35
34
|
JSON.generate(@response)
|
36
35
|
end
|
37
36
|
end
|
@@ -19,8 +19,7 @@ module Delivery
|
|
19
19
|
@content_link_url_resolver = content_link_url_resolver
|
20
20
|
@inline_content_item_resolver = inline_content_item_resolver
|
21
21
|
super 200,
|
22
|
-
"Success,
|
23
|
-
'#{item.system.code_name}' returned",
|
22
|
+
"Success, '#{item.system.code_name}' returned",
|
24
23
|
JSON.generate(@response)
|
25
24
|
end
|
26
25
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'delivery/models/taxonomy_group'
|
2
|
+
require 'delivery/models/pagination'
|
3
|
+
require 'delivery/responses/response_base'
|
4
|
+
|
5
|
+
module Delivery
|
6
|
+
module Responses
|
7
|
+
# Returned by DeliveryClient.taxonomies with an enumerable of TaxonomyGroups
|
8
|
+
class DeliveryTaxonomyListingResponse < ResponseBase
|
9
|
+
def pagination
|
10
|
+
@pagination unless @pagination.nil?
|
11
|
+
@pagination = Pagination.new @response['pagination']
|
12
|
+
end
|
13
|
+
|
14
|
+
def taxonomies
|
15
|
+
@taxonomies unless @taxonomies.nil?
|
16
|
+
taxonomies = []
|
17
|
+
@response['taxonomies'].each do |n|
|
18
|
+
taxonomies << Delivery::TaxonomyGroup.new(n)
|
19
|
+
end
|
20
|
+
@taxonomies = taxonomies
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize(response)
|
24
|
+
@response = response
|
25
|
+
|
26
|
+
super 200,
|
27
|
+
"Success, #{taxonomies.length} taxonomies returned",
|
28
|
+
JSON.generate(@response)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'delivery/models/taxonomy_group'
|
2
|
+
require 'delivery/responses/response_base'
|
3
|
+
|
4
|
+
module Delivery
|
5
|
+
module Responses
|
6
|
+
# Returned by DeliveryClient.taxonomy containing a single TaxonomyGroup
|
7
|
+
class DeliveryTaxonomyResponse < ResponseBase
|
8
|
+
def taxonomy
|
9
|
+
@taxonomy unless @taxonomy.nil?
|
10
|
+
@taxonomy = Delivery::TaxonomyGroup.new(@response)
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize(response)
|
14
|
+
@response = response
|
15
|
+
|
16
|
+
super 200,
|
17
|
+
"Success, '#{taxonomy.system.codename}' returned",
|
18
|
+
JSON.generate(@response)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/delivery/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Dugre
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/delivery/models/content_item.rb
|
112
112
|
- lib/delivery/models/content_type.rb
|
113
113
|
- lib/delivery/models/pagination.rb
|
114
|
+
- lib/delivery/models/taxonomy_group.rb
|
114
115
|
- lib/delivery/query_parameters/filters.rb
|
115
116
|
- lib/delivery/query_parameters/parameter_base.rb
|
116
117
|
- lib/delivery/query_parameters/query_string.rb
|
@@ -118,6 +119,8 @@ files:
|
|
118
119
|
- lib/delivery/resolvers/inline_content_item_resolver.rb
|
119
120
|
- lib/delivery/responses/delivery_item_listing_response.rb
|
120
121
|
- lib/delivery/responses/delivery_item_response.rb
|
122
|
+
- lib/delivery/responses/delivery_taxonomy_listing_response.rb
|
123
|
+
- lib/delivery/responses/delivery_taxonomy_response.rb
|
121
124
|
- lib/delivery/responses/delivery_type_listing_response.rb
|
122
125
|
- lib/delivery/responses/delivery_type_response.rb
|
123
126
|
- lib/delivery/responses/response_base.rb
|