kontent-delivery-sdk-ruby 2.0.12 → 2.0.19

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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.md +21 -21
  3. data/README.md +575 -543
  4. data/bin/console +14 -14
  5. data/bin/setup +8 -8
  6. data/lib/delivery/builders/image_transformation_builder.rb +271 -271
  7. data/lib/delivery/builders/url_builder.rb +120 -117
  8. data/lib/delivery/client/delivery_client.rb +176 -155
  9. data/lib/delivery/client/delivery_query.rb +302 -286
  10. data/lib/delivery/client/request_manager.rb +125 -121
  11. data/lib/delivery/models/content_item.rb +153 -153
  12. data/lib/delivery/models/content_type.rb +41 -41
  13. data/lib/delivery/models/pagination.rb +22 -22
  14. data/lib/delivery/models/taxonomy_group.rb +39 -39
  15. data/lib/delivery/query_parameters/filters.rb +158 -158
  16. data/lib/delivery/query_parameters/parameter_base.rb +46 -46
  17. data/lib/delivery/query_parameters/query_string.rb +78 -78
  18. data/lib/delivery/resolvers/content_link_resolver.rb +102 -102
  19. data/lib/delivery/resolvers/inline_content_item_resolver.rb +75 -75
  20. data/lib/delivery/resolvers/linked_item_resolver.rb +37 -37
  21. data/lib/delivery/responses/delivery_element_response.rb +34 -34
  22. data/lib/delivery/responses/delivery_item_listing_response.rb +54 -54
  23. data/lib/delivery/responses/delivery_item_response.rb +40 -40
  24. data/lib/delivery/responses/delivery_items_feed_response.rb +58 -0
  25. data/lib/delivery/responses/delivery_taxonomy_listing_response.rb +47 -47
  26. data/lib/delivery/responses/delivery_taxonomy_response.rb +33 -33
  27. data/lib/delivery/responses/delivery_type_listing_response.rb +46 -46
  28. data/lib/delivery/responses/delivery_type_response.rb +32 -32
  29. data/lib/delivery/responses/response_base.rb +39 -39
  30. data/lib/delivery/tests/401.json +5 -5
  31. data/lib/delivery/tests/429.json +4 -4
  32. data/lib/delivery/tests/fake_responder.rb +110 -84
  33. data/lib/delivery/tests/filtering/items_gt.json +565 -565
  34. data/lib/delivery/tests/filtering/items_with_count.json +4985 -4985
  35. data/lib/delivery/tests/filtering/multiple.json +282 -282
  36. data/lib/delivery/tests/filtering/pagination_about_us.json +646 -646
  37. data/lib/delivery/tests/generic/items.json +4984 -4984
  38. data/lib/delivery/tests/generic/items/about_us.json +227 -227
  39. data/lib/delivery/tests/generic/items/aeropress_filters.json +138 -138
  40. data/lib/delivery/tests/generic/items/coffee_processing_techniques.json +168 -168
  41. data/lib/delivery/tests/generic/items/empty_rich_text.json +24 -0
  42. data/lib/delivery/tests/generic/items/rich_text_complex_tables.json +81 -0
  43. data/lib/delivery/tests/generic/items/where_does_coffee_come_from_.json +620 -620
  44. data/lib/delivery/tests/generic/taxonomies.json +126 -126
  45. data/lib/delivery/tests/generic/types.json +780 -780
  46. data/lib/delivery/tests/generic/types/brewer/elements/product_status.json +5 -5
  47. data/lib/delivery/tests/items_feed/articles_feed_1.json +39 -0
  48. data/lib/delivery/tests/items_feed/articles_feed_2.json +78 -0
  49. data/lib/delivery/tests/items_feed/articles_feed_3.json +104 -0
  50. data/lib/delivery/version.rb +7 -7
  51. data/lib/kontent-delivery-sdk-ruby.rb +20 -19
  52. metadata +40 -15
@@ -1,117 +1,120 @@
1
- module Kentico
2
- module Kontent
3
- module Delivery
4
- module Builders
5
- # Internal class which generates the URL required for Delivery REST API
6
- class UrlBuilder
7
- URL_TEMPLATE_BASE = 'https://deliver.kontent.ai/%s'.freeze
8
- URL_TEMPLATE_PREVIEW = 'https://preview-deliver.kontent.ai/%s'.freeze
9
- URL_TEMPLATE_ITEM = '/items/%s'.freeze
10
- URL_TEMPLATE_ITEMS = '/items'.freeze
11
- URL_TEMPLATE_TYPE = '/types/%s'.freeze
12
- URL_TEMPLATE_TYPES = '/types'.freeze
13
- URL_TEMPLATE_ELEMENTS = '/types/%s/elements/%s'.freeze
14
- URL_TEMPLATE_TAXONOMY = '/taxonomies/%s'.freeze
15
- URL_TEMPLATE_TAXONOMIES = '/taxonomies'.freeze
16
-
17
- URL_MAX_LENGTH = 65_519
18
- MSG_LONG_QUERY = 'The request url is too long. Split your query into multiple calls.'.freeze
19
-
20
- class << self
21
- # Returns the proper domain for the request along with the
22
- # query string parameters configured by the +DeliveryQuery+.
23
- #
24
- # * *Args*:
25
- # - *query* ( Kentico::Kontent::Delivery::DeliveryQuery )
26
- #
27
- # * *Returns*:
28
- # - +string+ The full URL for a Delivery request
29
- def provide_url(query)
30
- url = provide_base_url(query)
31
- url += provide_path_part(query)
32
-
33
- if query.query_string.empty?
34
- url
35
- else
36
- url + query.query_string.to_s
37
- end
38
- end
39
-
40
- # Checks whether the provided URL is too long and raises an error if so.
41
- #
42
- # * *Args*:
43
- # - *url* (+string+) A full Delivery URL
44
- #
45
- # * *Raises*:
46
- # - +UriFormatException+ if the URL is 65,519 characters or more
47
- def validate_url(url)
48
- raise UriFormatException, MSG_LONG_QUERY if url.length > URL_MAX_LENGTH
49
- end
50
-
51
- private
52
-
53
- # Returns relative path part of URL depending on query type.
54
- #
55
- # * *Args*:
56
- # - *query* ( Kentico::Kontent::Delivery::DeliveryQuery )
57
- #
58
- # * *Returns*:
59
- # - +string+ The URL path part (without protocol or domain)
60
- def provide_path_part(query)
61
- case query.query_type
62
- when Kentico::Kontent::Delivery::QUERY_TYPE_ITEMS
63
- provide_item query
64
- when Kentico::Kontent::Delivery::QUERY_TYPE_TYPES
65
- provide_type query
66
- when Kentico::Kontent::Delivery::QUERY_TYPE_TAXONOMIES
67
- provide_taxonomy query
68
- when Kentico::Kontent::Delivery::QUERY_TYPE_ELEMENT
69
- format(URL_TEMPLATE_ELEMENTS, query.content_type, query.code_name)
70
- end
71
- end
72
-
73
- def provide_item(query)
74
- if query.code_name.nil?
75
- URL_TEMPLATE_ITEMS
76
- else
77
- format(URL_TEMPLATE_ITEM, query.code_name)
78
- end
79
- end
80
-
81
- def provide_taxonomy(query)
82
- if query.code_name.nil?
83
- URL_TEMPLATE_TAXONOMIES
84
- else
85
- format(URL_TEMPLATE_TAXONOMY, query.code_name)
86
- end
87
- end
88
-
89
- def provide_type(query)
90
- if query.code_name.nil?
91
- URL_TEMPLATE_TYPES
92
- else
93
- format(URL_TEMPLATE_TYPE, query.code_name)
94
- end
95
- end
96
-
97
- # Returns the protocol and domain with project ID. Domain changes
98
- # according to the query's +use_preview+ attribute.
99
- #
100
- # * *Args*:
101
- # - *query* ( Kentico::Kontent::Delivery::DeliveryQuery )
102
- #
103
- # * *Returns*:
104
- # - +string+ The URL with the project ID
105
- def provide_base_url(query)
106
- if query.use_preview
107
- format(URL_TEMPLATE_PREVIEW, query.project_id)
108
- else
109
- format(URL_TEMPLATE_BASE, query.project_id)
110
- end
111
- end
112
- end
113
- end
114
- end
115
- end
116
- end
117
- end
1
+ module Kentico
2
+ module Kontent
3
+ module Delivery
4
+ module Builders
5
+ # Internal class which generates the URL required for Delivery REST API
6
+ class UrlBuilder
7
+ URL_TEMPLATE_BASE = 'https://deliver.kontent.ai/%s'.freeze
8
+ URL_TEMPLATE_PREVIEW = 'https://preview-deliver.kontent.ai/%s'.freeze
9
+ URL_TEMPLATE_ITEM = '/items/%s'.freeze
10
+ URL_TEMPLATE_ITEMS = '/items'.freeze
11
+ URL_TEMPLATE_TYPE = '/types/%s'.freeze
12
+ URL_TEMPLATE_TYPES = '/types'.freeze
13
+ URL_TEMPLATE_ELEMENTS = '/types/%s/elements/%s'.freeze
14
+ URL_TEMPLATE_TAXONOMY = '/taxonomies/%s'.freeze
15
+ URL_TEMPLATE_TAXONOMIES = '/taxonomies'.freeze
16
+ URL_TEMPLATE_ITEMS_FEED = '/items-feed'.freeze
17
+
18
+ URL_MAX_LENGTH = 65_519
19
+ MSG_LONG_QUERY = 'The request url is too long. Split your query into multiple calls.'.freeze
20
+
21
+ class << self
22
+ # Returns the proper domain for the request along with the
23
+ # query string parameters configured by the +DeliveryQuery+.
24
+ #
25
+ # * *Args*:
26
+ # - *query* ( Kentico::Kontent::Delivery::DeliveryQuery )
27
+ #
28
+ # * *Returns*:
29
+ # - +string+ The full URL for a Delivery request
30
+ def provide_url(query)
31
+ url = provide_base_url(query)
32
+ url += provide_path_part(query)
33
+
34
+ if query.query_string.empty?
35
+ url
36
+ else
37
+ url + query.query_string.to_s
38
+ end
39
+ end
40
+
41
+ # Checks whether the provided URL is too long and raises an error if so.
42
+ #
43
+ # * *Args*:
44
+ # - *url* (+string+) A full Delivery URL
45
+ #
46
+ # * *Raises*:
47
+ # - +UriFormatException+ if the URL is 65,519 characters or more
48
+ def validate_url(url)
49
+ raise UriFormatException, MSG_LONG_QUERY if url.length > URL_MAX_LENGTH
50
+ end
51
+
52
+ private
53
+
54
+ # Returns relative path part of URL depending on query type.
55
+ #
56
+ # * *Args*:
57
+ # - *query* ( Kentico::Kontent::Delivery::DeliveryQuery )
58
+ #
59
+ # * *Returns*:
60
+ # - +string+ The URL path part (without protocol or domain)
61
+ def provide_path_part(query)
62
+ case query.query_type
63
+ when Kentico::Kontent::Delivery::QUERY_TYPE_ITEMS
64
+ provide_item query
65
+ when Kentico::Kontent::Delivery::QUERY_TYPE_TYPES
66
+ provide_type query
67
+ when Kentico::Kontent::Delivery::QUERY_TYPE_TAXONOMIES
68
+ provide_taxonomy query
69
+ when Kentico::Kontent::Delivery::QUERY_TYPE_ELEMENT
70
+ format(URL_TEMPLATE_ELEMENTS, query.content_type, query.code_name)
71
+ when Kentico::Kontent::Delivery::QUERY_TYPE_ITEMS_FEED
72
+ URL_TEMPLATE_ITEMS_FEED
73
+ end
74
+ end
75
+
76
+ def provide_item(query)
77
+ if query.code_name.nil?
78
+ URL_TEMPLATE_ITEMS
79
+ else
80
+ format(URL_TEMPLATE_ITEM, query.code_name)
81
+ end
82
+ end
83
+
84
+ def provide_taxonomy(query)
85
+ if query.code_name.nil?
86
+ URL_TEMPLATE_TAXONOMIES
87
+ else
88
+ format(URL_TEMPLATE_TAXONOMY, query.code_name)
89
+ end
90
+ end
91
+
92
+ def provide_type(query)
93
+ if query.code_name.nil?
94
+ URL_TEMPLATE_TYPES
95
+ else
96
+ format(URL_TEMPLATE_TYPE, query.code_name)
97
+ end
98
+ end
99
+
100
+ # Returns the protocol and domain with project ID. Domain changes
101
+ # according to the query's +use_preview+ attribute.
102
+ #
103
+ # * *Args*:
104
+ # - *query* ( Kentico::Kontent::Delivery::DeliveryQuery )
105
+ #
106
+ # * *Returns*:
107
+ # - +string+ The URL with the project ID
108
+ def provide_base_url(query)
109
+ if query.use_preview
110
+ format(URL_TEMPLATE_PREVIEW, query.project_id)
111
+ else
112
+ format(URL_TEMPLATE_BASE, query.project_id)
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
@@ -1,155 +1,176 @@
1
- require 'delivery/client/delivery_query'
2
- require 'delivery/responses/delivery_item_listing_response'
3
- require 'delivery/responses/delivery_item_response'
4
- require 'json'
5
-
6
- module Kentico
7
- module Kontent
8
- module Delivery
9
- QUERY_TYPE_TYPES = 'QUERY_TYPE_TYPES'.freeze
10
- QUERY_TYPE_ITEMS = 'QUERY_TYPE_ITEMS'.freeze
11
- QUERY_TYPE_TAXONOMIES = 'QUERY_TYPE_TAXONOMIES'.freeze
12
- QUERY_TYPE_ELEMENT = 'QUERY_TYPE_ELEMENT'.freeze
13
-
14
- # Executes requests against the Kentico Kontent Delivery API.
15
- class DeliveryClient
16
- attr_accessor :use_preview
17
-
18
- # Constructor. Accepts a hash with the options for client.
19
- #
20
- # * *Args*:
21
- # - *config* (+Hash+) May contain the following keys:
22
- # - project_id (+string+) _required_
23
- # - preview_key (+string+)
24
- # - secure_key (+string+)
25
- # - content_link_url_resolver ( Kentico::Kontent::Delivery::Resolvers::ContentLinkResolver )
26
- # - inline_content_item_resolver ( Kentico::Kontent::Delivery::Resolvers::InlineContentItemResolver )
27
- # - with_retry_policy (+bool+)
28
- def initialize(config)
29
- @project_id = config.fetch(:project_id)
30
- @preview_key = config.fetch(:preview_key, nil)
31
- @secure_key = config.fetch(:secure_key, nil)
32
- @content_link_url_resolver = config.fetch(:content_link_url_resolver, nil)
33
- @inline_content_item_resolver = config.fetch(:inline_content_item_resolver, nil)
34
- @with_retry_policy = config.fetch(:with_retry_policy, true)
35
- self.use_preview = !@preview_key.nil?
36
- end
37
-
38
- # Return all content types of the project
39
- #
40
- # * *Returns*:
41
- # - Kentico::Kontent::Delivery::DeliveryQuery
42
- def types
43
- DeliveryQuery.new project_id: @project_id,
44
- secure_key: @secure_key,
45
- query_type: QUERY_TYPE_TYPES,
46
- with_retry_policy: @with_retry_policy
47
- end
48
-
49
- # Return a single content type of the project
50
- #
51
- # * *Args*:
52
- # - *code_name* (+string+) Code name of the desired content type
53
- #
54
- # * *Returns*:
55
- # - Kentico::Kontent::Delivery::DeliveryQuery
56
- def type(code_name)
57
- DeliveryQuery.new project_id: @project_id,
58
- secure_key: @secure_key,
59
- code_name: code_name,
60
- query_type: QUERY_TYPE_TYPES,
61
- with_retry_policy: @with_retry_policy
62
- end
63
-
64
- # Return all content items of the project
65
- #
66
- # * *Args*:
67
- # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
68
- #
69
- # * *Returns*:
70
- # - Kentico::Kontent::Delivery::DeliveryQuery
71
- def items(query_parameters = [])
72
- q = DeliveryQuery.new project_id: @project_id,
73
- secure_key: @secure_key,
74
- qp: query_parameters,
75
- content_link_url_resolver: @content_link_url_resolver,
76
- inline_content_item_resolver: @inline_content_item_resolver,
77
- query_type: QUERY_TYPE_ITEMS,
78
- with_retry_policy: @with_retry_policy
79
- q.use_preview = use_preview
80
- q.preview_key = @preview_key
81
- q
82
- end
83
-
84
- # Return a single content item of the project
85
- #
86
- # * *Args*:
87
- # - *code_name* (+string+) The code name of the desired content item
88
- # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
89
- #
90
- # * *Returns*:
91
- # - Kentico::Kontent::Delivery::DeliveryQuery
92
- def item(code_name, query_parameters = [])
93
- q = DeliveryQuery.new project_id: @project_id,
94
- secure_key: @secure_key,
95
- code_name: code_name,
96
- qp: query_parameters,
97
- content_link_url_resolver: @content_link_url_resolver,
98
- inline_content_item_resolver: @inline_content_item_resolver,
99
- query_type: QUERY_TYPE_ITEMS,
100
- with_retry_policy: @with_retry_policy
101
- q.use_preview = use_preview
102
- q.preview_key = @preview_key
103
- q
104
- end
105
-
106
- # Return all taxonomy groups of the project
107
- #
108
- # * *Args*:
109
- # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
110
- #
111
- # * *Returns*:
112
- # - Kentico::Kontent::Delivery::DeliveryQuery
113
- def taxonomies(query_parameters = [])
114
- DeliveryQuery.new project_id: @project_id,
115
- secure_key: @secure_key,
116
- qp: query_parameters,
117
- query_type: QUERY_TYPE_TAXONOMIES,
118
- with_retry_policy: @with_retry_policy
119
- end
120
-
121
- # Return a single taxonomy group of the project
122
- #
123
- # * *Args*:
124
- # - *code_name* (+string+) The code name of the desired taxonomy group
125
- #
126
- # * *Returns*:
127
- # - Kentico::Kontent::Delivery::DeliveryQuery
128
- def taxonomy(code_name)
129
- DeliveryQuery.new project_id: @project_id,
130
- secure_key: @secure_key,
131
- code_name: code_name,
132
- query_type: QUERY_TYPE_TAXONOMIES,
133
- with_retry_policy: @with_retry_policy
134
- end
135
-
136
- # Return a single element of a content type
137
- #
138
- # * *Args*:
139
- # - *content_type* (+string+) The code name of the content type containing the element
140
- # - *element* (+string+) The code name of the desired element
141
- #
142
- # * *Returns*:
143
- # - Kentico::Kontent::Delivery::DeliveryQuery
144
- def element(content_type, element)
145
- DeliveryQuery.new project_id: @project_id,
146
- secure_key: @secure_key,
147
- code_name: element,
148
- content_type: content_type,
149
- query_type: QUERY_TYPE_ELEMENT,
150
- with_retry_policy: @with_retry_policy
151
- end
152
- end
153
- end
154
- end
155
- end
1
+ require 'delivery/client/delivery_query'
2
+ require 'delivery/responses/delivery_item_listing_response'
3
+ require 'delivery/responses/delivery_item_response'
4
+ require 'json'
5
+
6
+ module Kentico
7
+ module Kontent
8
+ module Delivery
9
+ QUERY_TYPE_TYPES = 'QUERY_TYPE_TYPES'.freeze
10
+ QUERY_TYPE_ITEMS = 'QUERY_TYPE_ITEMS'.freeze
11
+ QUERY_TYPE_TAXONOMIES = 'QUERY_TYPE_TAXONOMIES'.freeze
12
+ QUERY_TYPE_ELEMENT = 'QUERY_TYPE_ELEMENT'.freeze
13
+ QUERY_TYPE_ITEMS_FEED = 'QUERY_TYPE_ITEMS_FEED'.freeze
14
+
15
+ # Executes requests against the Kentico Kontent Delivery API.
16
+ class DeliveryClient
17
+ attr_accessor :use_preview
18
+
19
+ # Constructor. Accepts a hash with the options for client.
20
+ #
21
+ # * *Args*:
22
+ # - *config* (+Hash+) May contain the following keys:
23
+ # - project_id (+string+) _required_
24
+ # - preview_key (+string+)
25
+ # - secure_key (+string+)
26
+ # - content_link_url_resolver ( Kentico::Kontent::Delivery::Resolvers::ContentLinkResolver )
27
+ # - inline_content_item_resolver ( Kentico::Kontent::Delivery::Resolvers::InlineContentItemResolver )
28
+ # - with_retry_policy (+bool+)
29
+ def initialize(config)
30
+ @project_id = config.fetch(:project_id)
31
+ @preview_key = config.fetch(:preview_key, nil)
32
+ @secure_key = config.fetch(:secure_key, nil)
33
+ @content_link_url_resolver = config.fetch(:content_link_url_resolver, nil)
34
+ @inline_content_item_resolver = config.fetch(:inline_content_item_resolver, nil)
35
+ @with_retry_policy = config.fetch(:with_retry_policy, true)
36
+ self.use_preview = !@preview_key.nil?
37
+ end
38
+
39
+ # Return all content types of the project
40
+ #
41
+ # * *Returns*:
42
+ # - Kentico::Kontent::Delivery::DeliveryQuery
43
+ def types
44
+ DeliveryQuery.new project_id: @project_id,
45
+ secure_key: @secure_key,
46
+ query_type: QUERY_TYPE_TYPES,
47
+ with_retry_policy: @with_retry_policy
48
+ end
49
+
50
+ # Return a single content type of the project
51
+ #
52
+ # * *Args*:
53
+ # - *code_name* (+string+) Code name of the desired content type
54
+ #
55
+ # * *Returns*:
56
+ # - Kentico::Kontent::Delivery::DeliveryQuery
57
+ def type(code_name)
58
+ DeliveryQuery.new project_id: @project_id,
59
+ secure_key: @secure_key,
60
+ code_name: code_name,
61
+ query_type: QUERY_TYPE_TYPES,
62
+ with_retry_policy: @with_retry_policy
63
+ end
64
+
65
+ # Return a paginated feed of all content items of the project
66
+ #
67
+ # * *Args*:
68
+ # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
69
+ #
70
+ # * *Returns*:
71
+ # - Kentico::Kontent::Delivery::DeliveryQuery
72
+ def items_feed(query_parameters = [])
73
+ q = DeliveryQuery.new project_id: @project_id,
74
+ secure_key: @secure_key,
75
+ qp: query_parameters,
76
+ content_link_url_resolver: @content_link_url_resolver,
77
+ inline_content_item_resolver: @inline_content_item_resolver,
78
+ query_type: QUERY_TYPE_ITEMS_FEED,
79
+ with_retry_policy: @with_retry_policy
80
+ q.use_preview = use_preview
81
+ q.preview_key = @preview_key
82
+ q
83
+ end
84
+
85
+ # Return all content items of the project
86
+ #
87
+ # * *Args*:
88
+ # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
89
+ #
90
+ # * *Returns*:
91
+ # - Kentico::Kontent::Delivery::DeliveryQuery
92
+ def items(query_parameters = [])
93
+ q = DeliveryQuery.new project_id: @project_id,
94
+ secure_key: @secure_key,
95
+ qp: query_parameters,
96
+ content_link_url_resolver: @content_link_url_resolver,
97
+ inline_content_item_resolver: @inline_content_item_resolver,
98
+ query_type: QUERY_TYPE_ITEMS,
99
+ with_retry_policy: @with_retry_policy
100
+ q.use_preview = use_preview
101
+ q.preview_key = @preview_key
102
+ q
103
+ end
104
+
105
+ # Return a single content item of the project
106
+ #
107
+ # * *Args*:
108
+ # - *code_name* (+string+) The code name of the desired content item
109
+ # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
110
+ #
111
+ # * *Returns*:
112
+ # - Kentico::Kontent::Delivery::DeliveryQuery
113
+ def item(code_name, query_parameters = [])
114
+ q = DeliveryQuery.new project_id: @project_id,
115
+ secure_key: @secure_key,
116
+ code_name: code_name,
117
+ qp: query_parameters,
118
+ content_link_url_resolver: @content_link_url_resolver,
119
+ inline_content_item_resolver: @inline_content_item_resolver,
120
+ query_type: QUERY_TYPE_ITEMS,
121
+ with_retry_policy: @with_retry_policy
122
+ q.use_preview = use_preview
123
+ q.preview_key = @preview_key
124
+ q
125
+ end
126
+
127
+ # Return all taxonomy groups of the project
128
+ #
129
+ # * *Args*:
130
+ # - *query_parameters* (+Array+) _optional_ One or more Kentico::Kontent::Delivery::QueryParameters::Filter objects. A single object will automatically be converted into an Array.
131
+ #
132
+ # * *Returns*:
133
+ # - Kentico::Kontent::Delivery::DeliveryQuery
134
+ def taxonomies(query_parameters = [])
135
+ DeliveryQuery.new project_id: @project_id,
136
+ secure_key: @secure_key,
137
+ qp: query_parameters,
138
+ query_type: QUERY_TYPE_TAXONOMIES,
139
+ with_retry_policy: @with_retry_policy
140
+ end
141
+
142
+ # Return a single taxonomy group of the project
143
+ #
144
+ # * *Args*:
145
+ # - *code_name* (+string+) The code name of the desired taxonomy group
146
+ #
147
+ # * *Returns*:
148
+ # - Kentico::Kontent::Delivery::DeliveryQuery
149
+ def taxonomy(code_name)
150
+ DeliveryQuery.new project_id: @project_id,
151
+ secure_key: @secure_key,
152
+ code_name: code_name,
153
+ query_type: QUERY_TYPE_TAXONOMIES,
154
+ with_retry_policy: @with_retry_policy
155
+ end
156
+
157
+ # Return a single element of a content type
158
+ #
159
+ # * *Args*:
160
+ # - *content_type* (+string+) The code name of the content type containing the element
161
+ # - *element* (+string+) The code name of the desired element
162
+ #
163
+ # * *Returns*:
164
+ # - Kentico::Kontent::Delivery::DeliveryQuery
165
+ def element(content_type, element)
166
+ DeliveryQuery.new project_id: @project_id,
167
+ secure_key: @secure_key,
168
+ code_name: element,
169
+ content_type: content_type,
170
+ query_type: QUERY_TYPE_ELEMENT,
171
+ with_retry_policy: @with_retry_policy
172
+ end
173
+ end
174
+ end
175
+ end
176
+ end