kontent-ai-delivery 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +21 -0
  3. data/README.md +617 -0
  4. data/bin/console +14 -0
  5. data/bin/setup +8 -0
  6. data/lib/delivery/builders/image_transformation_builder.rb +272 -0
  7. data/lib/delivery/builders/url_builder.rb +123 -0
  8. data/lib/delivery/client/delivery_client.rb +184 -0
  9. data/lib/delivery/client/delivery_query.rb +308 -0
  10. data/lib/delivery/client/request_manager.rb +127 -0
  11. data/lib/delivery/models/content_item.rb +153 -0
  12. data/lib/delivery/models/content_type.rb +41 -0
  13. data/lib/delivery/models/language.rb +29 -0
  14. data/lib/delivery/models/pagination.rb +22 -0
  15. data/lib/delivery/models/taxonomy_group.rb +39 -0
  16. data/lib/delivery/query_parameters/filters.rb +201 -0
  17. data/lib/delivery/query_parameters/parameter_base.rb +56 -0
  18. data/lib/delivery/query_parameters/query_string.rb +78 -0
  19. data/lib/delivery/resolvers/content_link_resolver.rb +102 -0
  20. data/lib/delivery/resolvers/inline_content_item_resolver.rb +75 -0
  21. data/lib/delivery/resolvers/linked_item_resolver.rb +43 -0
  22. data/lib/delivery/responses/delivery_element_response.rb +34 -0
  23. data/lib/delivery/responses/delivery_item_listing_response.rb +54 -0
  24. data/lib/delivery/responses/delivery_item_response.rb +40 -0
  25. data/lib/delivery/responses/delivery_items_feed_response.rb +58 -0
  26. data/lib/delivery/responses/delivery_language_listing_response.rb +44 -0
  27. data/lib/delivery/responses/delivery_taxonomy_listing_response.rb +47 -0
  28. data/lib/delivery/responses/delivery_taxonomy_response.rb +33 -0
  29. data/lib/delivery/responses/delivery_type_listing_response.rb +46 -0
  30. data/lib/delivery/responses/delivery_type_response.rb +32 -0
  31. data/lib/delivery/responses/response_base.rb +39 -0
  32. data/lib/delivery/tests/401.json +6 -0
  33. data/lib/delivery/tests/429.json +5 -0
  34. data/lib/delivery/tests/fake_responder.rb +99 -0
  35. data/lib/delivery/tests/filtering/items_with_count.json +5385 -0
  36. data/lib/delivery/tests/filtering/pagination.json +762 -0
  37. data/lib/delivery/tests/generic/items/about_us.json +277 -0
  38. data/lib/delivery/tests/generic/items/aeropress_filters.json +156 -0
  39. data/lib/delivery/tests/generic/items/coffee_processing_techniques.json +566 -0
  40. data/lib/delivery/tests/generic/items/empty_rich_text.json +24 -0
  41. data/lib/delivery/tests/generic/items/rich_text_complex_tables.json +81 -0
  42. data/lib/delivery/tests/generic/items/where_does_coffee_come_from_.json +599 -0
  43. data/lib/delivery/tests/generic/items.json +5384 -0
  44. data/lib/delivery/tests/generic/languages.json +24 -0
  45. data/lib/delivery/tests/generic/taxonomies/manufacturer.json +30 -0
  46. data/lib/delivery/tests/generic/taxonomies.json +204 -0
  47. data/lib/delivery/tests/generic/types/brewer/elements/product_status.json +6 -0
  48. data/lib/delivery/tests/generic/types/brewer.json +89 -0
  49. data/lib/delivery/tests/generic/types.json +836 -0
  50. data/lib/delivery/tests/items_feed/articles_feed_1.json +39 -0
  51. data/lib/delivery/tests/items_feed/articles_feed_2.json +78 -0
  52. data/lib/delivery/tests/items_feed/articles_feed_3.json +104 -0
  53. data/lib/kontent-ai-delivery.rb +22 -0
  54. metadata +221 -0
@@ -0,0 +1,24 @@
1
+ {
2
+ "languages": [
3
+ {
4
+ "system": {
5
+ "id": "00000000-0000-0000-0000-000000000000",
6
+ "name": "English (United States)",
7
+ "codename": "en-US"
8
+ }
9
+ },
10
+ {
11
+ "system": {
12
+ "id": "d1f95fde-af02-b3b5-bd9e-f232311ccab8",
13
+ "name": "Spanish (Spain)",
14
+ "codename": "es-ES"
15
+ }
16
+ }
17
+ ],
18
+ "pagination": {
19
+ "skip": 0,
20
+ "limit": 0,
21
+ "count": 2,
22
+ "next_page": ""
23
+ }
24
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "system": {
3
+ "id": "4ce421e9-c403-eee8-fdc2-74f09392a749",
4
+ "name": "Manufacturer",
5
+ "codename": "manufacturer",
6
+ "last_modified": "2017-09-07T08:15:22.7210000Z"
7
+ },
8
+ "terms": [
9
+ {
10
+ "name": "Aerobie",
11
+ "codename": "aerobie",
12
+ "terms": []
13
+ },
14
+ {
15
+ "name": "Chemex",
16
+ "codename": "chemex",
17
+ "terms": []
18
+ },
19
+ {
20
+ "name": "Espro",
21
+ "codename": "espro",
22
+ "terms": []
23
+ },
24
+ {
25
+ "name": "Hario",
26
+ "codename": "hario",
27
+ "terms": []
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,204 @@
1
+ {
2
+ "taxonomies": [
3
+ {
4
+ "system": {
5
+ "id": "4ce421e9-c403-eee8-fdc2-74f09392a749",
6
+ "name": "Manufacturer",
7
+ "codename": "manufacturer",
8
+ "last_modified": "2017-09-07T08:15:22.7210000Z"
9
+ },
10
+ "terms": [
11
+ {
12
+ "name": "Aerobie",
13
+ "codename": "aerobie",
14
+ "terms": []
15
+ },
16
+ {
17
+ "name": "Chemex",
18
+ "codename": "chemex",
19
+ "terms": []
20
+ },
21
+ {
22
+ "name": "Espro",
23
+ "codename": "espro",
24
+ "terms": []
25
+ },
26
+ {
27
+ "name": "Hario",
28
+ "codename": "hario",
29
+ "terms": []
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ "system": {
35
+ "id": "f30c7f72-e9ab-8832-2a57-62944a038809",
36
+ "name": "Personas",
37
+ "codename": "personas",
38
+ "last_modified": "2016-10-20T13:24:00.3200000Z"
39
+ },
40
+ "terms": [
41
+ {
42
+ "name": "Coffee expert",
43
+ "codename": "coffee_expert",
44
+ "terms": [
45
+ {
46
+ "name": "Barista",
47
+ "codename": "barista",
48
+ "terms": []
49
+ },
50
+ {
51
+ "name": "Cafe owner",
52
+ "codename": "cafe_owner",
53
+ "terms": []
54
+ }
55
+ ]
56
+ },
57
+ {
58
+ "name": "Coffee enthusiast",
59
+ "codename": "coffee_enthusiast",
60
+ "terms": [
61
+ {
62
+ "name": "Coffee lover",
63
+ "codename": "coffee_lover",
64
+ "terms": []
65
+ },
66
+ {
67
+ "name": "Coffee blogger",
68
+ "codename": "coffee_blogger",
69
+ "terms": []
70
+ }
71
+ ]
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ "system": {
77
+ "id": "d351400e-0290-87b2-1413-6c411d8ae5a4",
78
+ "name": "Processing",
79
+ "codename": "processing",
80
+ "last_modified": "2017-09-07T08:15:33.7560000Z"
81
+ },
82
+ "terms": [
83
+ {
84
+ "name": "Wet (Washed)",
85
+ "codename": "wet__washed_",
86
+ "terms": []
87
+ },
88
+ {
89
+ "name": "Dry (Natural)",
90
+ "codename": "dry__natural_",
91
+ "terms": []
92
+ },
93
+ {
94
+ "name": "Semi-dry",
95
+ "codename": "semi_dry",
96
+ "terms": []
97
+ }
98
+ ]
99
+ },
100
+ {
101
+ "system": {
102
+ "id": "79b1c5b6-30bc-d076-a236-d9ec9f1ff01b",
103
+ "name": "Product status",
104
+ "codename": "product_status",
105
+ "last_modified": "2016-09-15T10:53:25.2230000Z"
106
+ },
107
+ "terms": [
108
+ {
109
+ "name": "On sale",
110
+ "codename": "on_sale",
111
+ "terms": []
112
+ },
113
+ {
114
+ "name": "Bestseller",
115
+ "codename": "bestseller",
116
+ "terms": []
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ "system": {
122
+ "id": "538125ff-c59c-4193-88ce-71a7016830ed",
123
+ "name": "Sitemap",
124
+ "codename": "sitemap_538125f",
125
+ "last_modified": "2019-03-27T13:02:50.1430000Z"
126
+ },
127
+ "terms": [
128
+ {
129
+ "name": "Home",
130
+ "codename": "home",
131
+ "terms": []
132
+ },
133
+ {
134
+ "name": "Products",
135
+ "codename": "products",
136
+ "terms": [
137
+ {
138
+ "name": "Coffee",
139
+ "codename": "coffee",
140
+ "terms": []
141
+ },
142
+ {
143
+ "name": "Brewers",
144
+ "codename": "brewers",
145
+ "terms": []
146
+ },
147
+ {
148
+ "name": "Accessories",
149
+ "codename": "accessories",
150
+ "terms": []
151
+ },
152
+ {
153
+ "name": "Grinders",
154
+ "codename": "grinders",
155
+ "terms": []
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "name": "Cafes",
161
+ "codename": "cafes",
162
+ "terms": [
163
+ {
164
+ "name": "North America",
165
+ "codename": "north_america",
166
+ "terms": []
167
+ },
168
+ {
169
+ "name": "Europe",
170
+ "codename": "europe",
171
+ "terms": []
172
+ },
173
+ {
174
+ "name": "Australia",
175
+ "codename": "australia",
176
+ "terms": []
177
+ }
178
+ ]
179
+ },
180
+ {
181
+ "name": "Articles",
182
+ "codename": "articles",
183
+ "terms": []
184
+ },
185
+ {
186
+ "name": "Offices",
187
+ "codename": "offices",
188
+ "terms": []
189
+ },
190
+ {
191
+ "name": "About us",
192
+ "codename": "about_us",
193
+ "terms": []
194
+ }
195
+ ]
196
+ }
197
+ ],
198
+ "pagination": {
199
+ "skip": 0,
200
+ "limit": 0,
201
+ "count": 5,
202
+ "next_page": ""
203
+ }
204
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "taxonomy",
3
+ "name": "Product status",
4
+ "taxonomy_group": "product_status",
5
+ "codename": "product_status"
6
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "system": {
3
+ "id": "7bc932b3-ce2a-4aa7-954e-04cbcbd214fc",
4
+ "name": "Brewer",
5
+ "codename": "brewer",
6
+ "last_modified": "2019-07-16T07:15:27.5660000Z"
7
+ },
8
+ "elements": {
9
+ "product_name": {
10
+ "type": "text",
11
+ "name": "Product name"
12
+ },
13
+ "metadata__og_description": {
14
+ "type": "text",
15
+ "name": "og:description"
16
+ },
17
+ "metadata__meta_title": {
18
+ "type": "text",
19
+ "name": "Meta title"
20
+ },
21
+ "long_description": {
22
+ "type": "rich_text",
23
+ "name": "Long description"
24
+ },
25
+ "metadata__og_title": {
26
+ "type": "text",
27
+ "name": "og:title"
28
+ },
29
+ "metadata__meta_description": {
30
+ "type": "text",
31
+ "name": "Meta description"
32
+ },
33
+ "metadata__twitter_site": {
34
+ "type": "text",
35
+ "name": "twitter:site"
36
+ },
37
+ "price": {
38
+ "type": "number",
39
+ "name": "Price"
40
+ },
41
+ "manufacturer": {
42
+ "type": "taxonomy",
43
+ "name": "Manufacturer",
44
+ "taxonomy_group": "manufacturer"
45
+ },
46
+ "metadata__twitter_image": {
47
+ "type": "asset",
48
+ "name": "twitter:image"
49
+ },
50
+ "metadata__twitter_creator": {
51
+ "type": "text",
52
+ "name": "twitter:creator"
53
+ },
54
+ "url_pattern": {
55
+ "type": "url_slug",
56
+ "name": "URL pattern"
57
+ },
58
+ "sitemap": {
59
+ "type": "taxonomy",
60
+ "name": "Sitemap",
61
+ "taxonomy_group": "sitemap_538125f"
62
+ },
63
+ "short_description": {
64
+ "type": "rich_text",
65
+ "name": "Short description"
66
+ },
67
+ "product_status": {
68
+ "type": "taxonomy",
69
+ "name": "Product status",
70
+ "taxonomy_group": "product_status"
71
+ },
72
+ "metadata__twitter_title": {
73
+ "type": "text",
74
+ "name": "twitter:title"
75
+ },
76
+ "metadata__twitter_description": {
77
+ "type": "text",
78
+ "name": "twitter:description"
79
+ },
80
+ "metadata__og_image": {
81
+ "type": "asset",
82
+ "name": "og:image"
83
+ },
84
+ "image": {
85
+ "type": "asset",
86
+ "name": "Image"
87
+ }
88
+ }
89
+ }