contentful_model 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +5 -5
  2. data/lib/contentful_model.rb +17 -13
  3. data/lib/contentful_model/asset.rb +30 -0
  4. data/lib/contentful_model/asset_dimension_query.rb +70 -0
  5. data/lib/contentful_model/asset_dimensions.rb +54 -0
  6. data/lib/contentful_model/associations/associations.rb +10 -4
  7. data/lib/contentful_model/associations/belongs_to.rb +9 -4
  8. data/lib/contentful_model/associations/belongs_to_many.rb +22 -45
  9. data/lib/contentful_model/associations/has_many.rb +15 -13
  10. data/lib/contentful_model/associations/has_many_nested.rb +39 -37
  11. data/lib/contentful_model/associations/has_one.rb +22 -14
  12. data/lib/contentful_model/base.rb +115 -74
  13. data/lib/contentful_model/client.rb +14 -3
  14. data/lib/contentful_model/errors.rb +0 -1
  15. data/lib/contentful_model/manageable.rb +49 -21
  16. data/lib/contentful_model/management.rb +1 -0
  17. data/lib/contentful_model/migrations/content_type.rb +24 -24
  18. data/lib/contentful_model/migrations/content_type_factory.rb +9 -6
  19. data/lib/contentful_model/migrations/migration.rb +9 -4
  20. data/lib/contentful_model/queries.rb +60 -9
  21. data/lib/contentful_model/query.rb +148 -5
  22. data/lib/contentful_model/validations/lambda_validation.rb +17 -0
  23. data/lib/contentful_model/validations/validates_presence_of.rb +4 -1
  24. data/lib/contentful_model/validations/validations.rb +56 -8
  25. data/lib/contentful_model/version.rb +1 -1
  26. data/spec/asset_spec.rb +141 -0
  27. data/spec/associations/belongs_to_many_spec.rb +38 -0
  28. data/spec/associations/belongs_to_spec.rb +22 -0
  29. data/spec/associations/has_many_nested_spec.rb +321 -0
  30. data/spec/associations/has_many_spec.rb +33 -0
  31. data/spec/associations/has_one_spec.rb +32 -0
  32. data/spec/base_spec.rb +199 -0
  33. data/spec/chainable_queries_spec.rb +199 -0
  34. data/spec/client_spec.rb +11 -0
  35. data/spec/contentful_model_spec.rb +25 -0
  36. data/spec/fixtures/vcr_cassettes/asset/all.yml +161 -0
  37. data/spec/fixtures/vcr_cassettes/asset/find.yml +118 -0
  38. data/spec/fixtures/vcr_cassettes/association/belongs_to_many.yml +439 -0
  39. data/spec/fixtures/vcr_cassettes/association/has_many.yml +161 -0
  40. data/spec/fixtures/vcr_cassettes/association/has_one.yml +161 -0
  41. data/spec/fixtures/vcr_cassettes/association/nested_with_root_root.yml +240 -0
  42. data/spec/fixtures/vcr_cassettes/association/nested_without_root_child_higher_include.yml +123 -0
  43. data/spec/fixtures/vcr_cassettes/association/nested_without_root_child_parent.yml +609 -0
  44. data/spec/fixtures/vcr_cassettes/association/nested_without_root_childless.yml +688 -0
  45. data/spec/fixtures/vcr_cassettes/association/nested_without_root_middle.yml +319 -0
  46. data/spec/fixtures/vcr_cassettes/association/nested_without_root_middle_higher_include.yml +161 -0
  47. data/spec/fixtures/vcr_cassettes/association/nested_without_root_middle_parent.yml +489 -0
  48. data/spec/fixtures/vcr_cassettes/association/nested_without_root_parentless.yml +331 -0
  49. data/spec/fixtures/vcr_cassettes/association/nested_without_root_parentless_higher_include.yml +82 -0
  50. data/spec/fixtures/vcr_cassettes/associations/nested_without_root_middle.yml +161 -0
  51. data/spec/fixtures/vcr_cassettes/associations/nested_without_root_middle_higher_include.yml +82 -0
  52. data/spec/fixtures/vcr_cassettes/base/content_type.yml +185 -0
  53. data/spec/fixtures/vcr_cassettes/base/return_nil_for_empty.yml +202 -0
  54. data/spec/fixtures/vcr_cassettes/base/return_nil_for_empty_with_value.yml +124 -0
  55. data/spec/fixtures/vcr_cassettes/client.yml +98 -0
  56. data/spec/fixtures/vcr_cassettes/dog.yml +161 -0
  57. data/spec/fixtures/vcr_cassettes/human.yml +199 -0
  58. data/spec/fixtures/vcr_cassettes/management/client.yml +1362 -0
  59. data/spec/fixtures/vcr_cassettes/management/nyancat.yml +1449 -0
  60. data/spec/fixtures/vcr_cassettes/management/nyancat_2.yml +1449 -0
  61. data/spec/fixtures/vcr_cassettes/management/nyancat_publish.yml +481 -0
  62. data/spec/fixtures/vcr_cassettes/management/nyancat_refetch_and_fail.yml +558 -0
  63. data/spec/fixtures/vcr_cassettes/management/nyancat_refetch_and_save.yml +620 -0
  64. data/spec/fixtures/vcr_cassettes/management/nyancat_save.yml +479 -0
  65. data/spec/fixtures/vcr_cassettes/management/nyancat_save_2.yml +479 -0
  66. data/spec/fixtures/vcr_cassettes/nyancat.yml +196 -0
  67. data/spec/fixtures/vcr_cassettes/playground/nyancat.yml +177 -0
  68. data/spec/fixtures/vcr_cassettes/query/each_entry.yml +319 -0
  69. data/spec/fixtures/vcr_cassettes/query/each_page.yml +319 -0
  70. data/spec/fixtures/vcr_cassettes/query/empty.yml +180 -0
  71. data/spec/fixtures/vcr_cassettes/query/load.yml +197 -0
  72. data/spec/fixtures/vcr_cassettes/query/manual_pagination.yml +161 -0
  73. data/spec/fixtures/vcr_cassettes/query/nyancat_invalid_elements.yml +247 -0
  74. data/spec/manageable_spec.rb +186 -0
  75. data/spec/management_spec.rb +17 -0
  76. data/spec/migrations/content_type_factory_spec.rb +41 -0
  77. data/spec/migrations/content_type_spec.rb +176 -0
  78. data/spec/migrations/migration_spec.rb +75 -0
  79. data/spec/queries_spec.rb +85 -0
  80. data/spec/query_spec.rb +126 -0
  81. data/spec/spec_helper.rb +58 -0
  82. data/spec/validations/validations_spec.rb +182 -0
  83. metadata +213 -19
  84. data/lib/contentful_model/chainable_queries.rb +0 -104
@@ -0,0 +1,479 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.contentful.com/spaces/facgnwwgj5fe/environments/master/content_types/cat
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - RubyContentfulManagementGem/1.1.0
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ Content-Length:
17
+ - '0'
18
+ Connection:
19
+ - close
20
+ Host:
21
+ - api.contentful.com
22
+ response:
23
+ status:
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ Access-Control-Allow-Headers:
28
+ - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization,X-Contentful-Skip-Transformation,X-Contentful-User-Agent
29
+ Access-Control-Allow-Methods:
30
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
31
+ Access-Control-Allow-Origin:
32
+ - "*"
33
+ Access-Control-Expose-Headers:
34
+ - Etag
35
+ Access-Control-Max-Age:
36
+ - '1728000'
37
+ Cf-Space-Id:
38
+ - facgnwwgj5fe
39
+ Content-Type:
40
+ - application/vnd.contentful.management.v1+json
41
+ Date:
42
+ - Mon, 08 May 2017 14:10:53 GMT
43
+ Etag:
44
+ - '"3ebdb893e2c6c3d675f9c1d97cc55d58"'
45
+ Server:
46
+ - Contentful
47
+ Strict-Transport-Security:
48
+ - max-age=15768000
49
+ X-Content-Type-Options:
50
+ - nosniff
51
+ X-Contentful-Ratelimit-Hour-Limit:
52
+ - '36000'
53
+ X-Contentful-Ratelimit-Hour-Remaining:
54
+ - '35946'
55
+ X-Contentful-Ratelimit-Reset:
56
+ - '0'
57
+ X-Contentful-Ratelimit-Second-Limit:
58
+ - '10'
59
+ X-Contentful-Ratelimit-Second-Remaining:
60
+ - '9'
61
+ X-Contentful-Request-Id:
62
+ - 3bf94d724fe1005dec593d36cb4cf26f
63
+ Content-Length:
64
+ - '1604'
65
+ Connection:
66
+ - Close
67
+ Set-Cookie:
68
+ - incap_ses_297_673446=LGdPZX0MvXP3Uo6HiygfBG58EFkAAAAAqJds0JrIWVeXdcdHwCS7UQ==;
69
+ path=/; Domain=.contentful.com
70
+ - nlbi_673446=iGA9MjTOSxobb4qD6lKYhQAAAACDXkAnT9IyQsZIY/+xIId2; path=/; Domain=.contentful.com
71
+ - visid_incap_673446=dI7jUbLoRSuOceGAydRZbm58EFkAAAAAQUIPAAAAAADIhN6c9FvLXMlp+KaWakoV;
72
+ expires=Tue, 08 May 2018 07:00:13 GMT; path=/; Domain=.contentful.com
73
+ X-Iinfo:
74
+ - 0-22362614-22362630 NNNN CT(140 138 0) RT(1494252653354 109) q(0 0 3 -1) r(6
75
+ 6) U5
76
+ X-Cdn:
77
+ - Incapsula
78
+ body:
79
+ encoding: UTF-8
80
+ string: |
81
+ {
82
+ "name": "Cat",
83
+ "fields": [
84
+ {
85
+ "name": "Name",
86
+ "id": "name",
87
+ "type": "Symbol",
88
+ "validations": [],
89
+ "localized": false,
90
+ "required": false,
91
+ "disabled": false,
92
+ "omitted": false
93
+ },
94
+ {
95
+ "name": "Lives",
96
+ "id": "lives",
97
+ "type": "Integer",
98
+ "validations": [],
99
+ "localized": false,
100
+ "required": false,
101
+ "disabled": false,
102
+ "omitted": false
103
+ },
104
+ {
105
+ "name": "Best Friend",
106
+ "id": "bestFriend",
107
+ "type": "Link",
108
+ "linkType": "Entry",
109
+ "localized": false,
110
+ "required": false,
111
+ "disabled": false,
112
+ "omitted": false,
113
+ "validations": []
114
+ }
115
+ ],
116
+ "displayField": "name",
117
+ "description": "",
118
+ "sys": {
119
+ "id": "cat",
120
+ "type": "ContentType",
121
+ "createdAt": "2017-05-08T14:06:00.224Z",
122
+ "createdBy": {
123
+ "sys": {
124
+ "type": "Link",
125
+ "linkType": "User",
126
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
127
+ }
128
+ },
129
+ "space": {
130
+ "sys": {
131
+ "type": "Link",
132
+ "linkType": "Space",
133
+ "id": "facgnwwgj5fe"
134
+ }
135
+ },
136
+ "firstPublishedAt": "2017-05-08T14:06:00.749Z",
137
+ "publishedCounter": 1,
138
+ "publishedAt": "2017-05-08T14:06:00.749Z",
139
+ "publishedBy": {
140
+ "sys": {
141
+ "type": "Link",
142
+ "linkType": "User",
143
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
144
+ }
145
+ },
146
+ "publishedVersion": 1,
147
+ "version": 2,
148
+ "updatedAt": "2017-05-08T14:06:00.760Z",
149
+ "updatedBy": {
150
+ "sys": {
151
+ "type": "Link",
152
+ "linkType": "User",
153
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
154
+ }
155
+ }
156
+ }
157
+ }
158
+ http_version:
159
+ recorded_at: Tue, 09 May 2017 13:31:34 GMT
160
+ - request:
161
+ method: get
162
+ uri: https://cdn.contentful.com/spaces/facgnwwgj5fe/environments/master/entries?sys.id=IJLRrADsqq2AmwcugoYeK
163
+ body:
164
+ encoding: US-ASCII
165
+ string: ''
166
+ headers:
167
+ User-Agent:
168
+ - RubyContentfulGem/2.0.1
169
+ Authorization:
170
+ - Bearer 4d0f55d940975f78139daae5d965b463c0816e88ad16062d2c1ee3d6cb930521
171
+ Content-Type:
172
+ - application/vnd.contentful.delivery.v1+json
173
+ Accept-Encoding:
174
+ - gzip
175
+ Connection:
176
+ - close
177
+ Host:
178
+ - cdn.contentful.com
179
+ response:
180
+ status:
181
+ code: 200
182
+ message: OK
183
+ headers:
184
+ Access-Control-Allow-Headers:
185
+ - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization,X-Contentful-Skip-Transformation,X-Contentful-User-Agent
186
+ Access-Control-Allow-Methods:
187
+ - GET,HEAD,OPTIONS
188
+ Access-Control-Allow-Origin:
189
+ - "*"
190
+ Access-Control-Expose-Headers:
191
+ - Etag
192
+ Access-Control-Max-Age:
193
+ - '86400'
194
+ Cache-Control:
195
+ - max-age=0
196
+ Content-Encoding:
197
+ - gzip
198
+ Content-Type:
199
+ - application/vnd.contentful.delivery.v1+json
200
+ Etag:
201
+ - W/"eed7c45300718697b883c490d40eaae3"
202
+ Server:
203
+ - Contentful
204
+ X-Content-Type-Options:
205
+ - nosniff
206
+ X-Contentful-Request-Id:
207
+ - 6d58420e56cd72d96f6d05fff7e44b84
208
+ Content-Length:
209
+ - '523'
210
+ Accept-Ranges:
211
+ - bytes
212
+ Date:
213
+ - Tue, 09 May 2017 13:39:54 GMT
214
+ Via:
215
+ - 1.1 varnish
216
+ Age:
217
+ - '1'
218
+ Connection:
219
+ - close
220
+ X-Served-By:
221
+ - cache-lax8645-LAX
222
+ X-Cache:
223
+ - HIT
224
+ X-Cache-Hits:
225
+ - '1'
226
+ X-Timer:
227
+ - S1494337195.960152,VS0,VE1
228
+ Vary:
229
+ - Accept-Encoding
230
+ body:
231
+ encoding: ASCII-8BIT
232
+ string: !binary |-
233
+ H4sIAAAAAAAAA62VSVPCMBTH73wKJmdhWkqF9tZBHRd0RsGDOhxiGphISbcg
234
+ 03H47mbpktYWL+TA9CV5S/55v/DT6/dBmqXA7f/wT26wLMLcAl6SwAzwueOF
235
+ 2MNCBgM+b0or3ZKIG4Y0ArIjTCwZyiYM70TADxlQhW1kkZnSCCKRqtihJrVa
236
+ xIScLGqaE7oFImc1eHa6XeY1L2TExgbii+OsIdrQw2HzZa+xOFUxjuW3PKca
237
+ QPnc3c9fEu8qjeORtzug/SZ8ww9a+LKua8qSTF9ACYYM+56QBYwMczIw7IEx
238
+ XZpj17h0R/bQtMfvusM+8lscnKVpuZYjHOzxZc0hwd8kJSEVutta5SikDFOW
239
+ K3I+aWda3FaBEWT/6xqECAayvTAdvC4Kh1J6sCY48KtuFNcBKNxJl6cM0v6M
240
+ p9GOG5BvLLabljXRpj9xym4Sgqm4+/OJ0LxnWZ7qFRQbj4m3vZ16xvP0OX2L
241
+ 94fHuEOQvM9U64nfleSIUBTsfXmcnEWVryCpYqmFpg6eWnfKsk8wxVf/o6o8
242
+ dxdX/N3QKdNb5qRitY1FjX91B6cJG1tDZ2LrwPCC2xkroGx10SmrVdaN2TkU
243
+ 74at1L2B2ym5O6DLX/b8xWsBj+cq0LuFUZQ12JNdouhzatp0wncOaf62ggZh
244
+ +4Nd+7+odWX19teQXHHr2Dv2fgHe1BBDHQcAAA==
245
+ http_version:
246
+ recorded_at: Tue, 09 May 2017 13:39:55 GMT
247
+ - request:
248
+ method: put
249
+ uri: https://api.contentful.com/spaces/facgnwwgj5fe/environments/master/entries/IJLRrADsqq2AmwcugoYeK
250
+ body:
251
+ encoding: UTF-8
252
+ string: '{"fields":{"name":{"en-US":"Fat Cat"},"lives":{"en-US":1337},"bestFriend":{"en-US":{"sys":{"type":"Link","linkType":"Entry","id":"cq0MrAkH8A0Q8QsYquwMq"}}}}}'
253
+ headers:
254
+ User-Agent:
255
+ - RubyContentfulManagementGem/1.1.0
256
+ Authorization:
257
+ - Bearer <ACCESS_TOKEN>
258
+ Content-Type:
259
+ - application/vnd.contentful.management.v1+json
260
+ X-Contentful-Version:
261
+ - '55'
262
+ Connection:
263
+ - close
264
+ Host:
265
+ - api.contentful.com
266
+ response:
267
+ status:
268
+ code: 200
269
+ message: OK
270
+ headers:
271
+ Access-Control-Allow-Headers:
272
+ - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization,X-Contentful-Skip-Transformation,X-Contentful-User-Agent
273
+ Access-Control-Allow-Methods:
274
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
275
+ Access-Control-Allow-Origin:
276
+ - "*"
277
+ Access-Control-Expose-Headers:
278
+ - Etag
279
+ Access-Control-Max-Age:
280
+ - '1728000'
281
+ Cf-Space-Id:
282
+ - facgnwwgj5fe
283
+ Content-Type:
284
+ - application/vnd.contentful.management.v1+json
285
+ Date:
286
+ - Tue, 09 May 2017 13:39:55 GMT
287
+ Etag:
288
+ - '"e49370bfd48a5307a605cd1493106362"'
289
+ Server:
290
+ - Contentful
291
+ Strict-Transport-Security:
292
+ - max-age=15768000
293
+ X-Content-Type-Options:
294
+ - nosniff
295
+ X-Contentful-Ratelimit-Hour-Limit:
296
+ - '36000'
297
+ X-Contentful-Ratelimit-Hour-Remaining:
298
+ - '35926'
299
+ X-Contentful-Ratelimit-Reset:
300
+ - '0'
301
+ X-Contentful-Ratelimit-Second-Limit:
302
+ - '10'
303
+ X-Contentful-Ratelimit-Second-Remaining:
304
+ - '9'
305
+ X-Contentful-Request-Id:
306
+ - a97b13a8926f3a4312d4133ca8b35a9b
307
+ Content-Length:
308
+ - '1299'
309
+ Connection:
310
+ - Close
311
+ Set-Cookie:
312
+ - incap_ses_297_673446=jO6Qc+RpSn3+GsSJiygfBKvGEVkAAAAAI55iJhBxusFSc+v+6J0R9A==;
313
+ path=/; Domain=.contentful.com
314
+ - nlbi_673446=198AdT/sPFRG1yyj6lKYhQAAAABYPV5L32jMyhR9bk14yBim; path=/; Domain=.contentful.com
315
+ - visid_incap_673446=umJj9/5wSgOb5xVBhBfiEKvGEVkAAAAAQUIPAAAAAADjC5mJwtOx1OB4jeht6Fk1;
316
+ expires=Wed, 09 May 2018 07:00:15 GMT; path=/; Domain=.contentful.com
317
+ X-Iinfo:
318
+ - 4-48249419-48249430 NNNN CT(0 0 0) RT(1494337195249 96) q(0 0 0 -1) r(3 3)
319
+ U5
320
+ X-Cdn:
321
+ - Incapsula
322
+ body:
323
+ encoding: UTF-8
324
+ string: |
325
+ {
326
+ "fields": {
327
+ "name": {
328
+ "en-US": "Fat Cat"
329
+ },
330
+ "lives": {
331
+ "en-US": 1337
332
+ },
333
+ "bestFriend": {
334
+ "en-US": {
335
+ "sys": {
336
+ "type": "Link",
337
+ "linkType": "Entry",
338
+ "id": "cq0MrAkH8A0Q8QsYquwMq"
339
+ }
340
+ }
341
+ }
342
+ },
343
+ "sys": {
344
+ "id": "IJLRrADsqq2AmwcugoYeK",
345
+ "type": "Entry",
346
+ "createdAt": "2017-05-08T14:06:14.367Z",
347
+ "createdBy": {
348
+ "sys": {
349
+ "type": "Link",
350
+ "linkType": "User",
351
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
352
+ }
353
+ },
354
+ "space": {
355
+ "sys": {
356
+ "type": "Link",
357
+ "linkType": "Space",
358
+ "id": "facgnwwgj5fe"
359
+ }
360
+ },
361
+ "contentType": {
362
+ "sys": {
363
+ "type": "Link",
364
+ "linkType": "ContentType",
365
+ "id": "cat"
366
+ }
367
+ },
368
+ "firstPublishedAt": "2017-05-08T14:06:25.154Z",
369
+ "publishedCounter": 15,
370
+ "publishedAt": "2017-05-09T13:39:25.546Z",
371
+ "publishedBy": {
372
+ "sys": {
373
+ "type": "Link",
374
+ "linkType": "User",
375
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
376
+ }
377
+ },
378
+ "publishedVersion": 54,
379
+ "version": 56,
380
+ "updatedAt": "2017-05-09T13:39:55.624Z",
381
+ "updatedBy": {
382
+ "sys": {
383
+ "type": "Link",
384
+ "linkType": "User",
385
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
386
+ }
387
+ }
388
+ }
389
+ }
390
+ http_version:
391
+ recorded_at: Tue, 09 May 2017 13:39:55 GMT
392
+ - request:
393
+ method: get
394
+ uri: https://cdn.contentful.com/spaces/facgnwwgj5fe/environments/master/entries?sys.id=IJLRrADsqq2AmwcugoYeK
395
+ body:
396
+ encoding: US-ASCII
397
+ string: ''
398
+ headers:
399
+ User-Agent:
400
+ - RubyContentfulGem/2.0.1
401
+ Authorization:
402
+ - Bearer 4d0f55d940975f78139daae5d965b463c0816e88ad16062d2c1ee3d6cb930521
403
+ Content-Type:
404
+ - application/vnd.contentful.delivery.v1+json
405
+ Accept-Encoding:
406
+ - gzip
407
+ Connection:
408
+ - close
409
+ Host:
410
+ - cdn.contentful.com
411
+ response:
412
+ status:
413
+ code: 200
414
+ message: OK
415
+ headers:
416
+ Access-Control-Allow-Headers:
417
+ - Accept,Accept-Language,Authorization,Cache-Control,Content-Length,Content-Range,Content-Type,DNT,Destination,Expires,If-Match,If-Modified-Since,If-None-Match,Keep-Alive,Last-Modified,Origin,Pragma,Range,User-Agent,X-Http-Method-Override,X-Mx-ReqToken,X-Requested-With,X-Contentful-Version,X-Contentful-Content-Type,X-Contentful-Organization,X-Contentful-Skip-Transformation,X-Contentful-User-Agent
418
+ Access-Control-Allow-Methods:
419
+ - GET,HEAD,OPTIONS
420
+ Access-Control-Allow-Origin:
421
+ - "*"
422
+ Access-Control-Expose-Headers:
423
+ - Etag
424
+ Access-Control-Max-Age:
425
+ - '86400'
426
+ Cache-Control:
427
+ - max-age=0
428
+ Content-Encoding:
429
+ - gzip
430
+ Content-Type:
431
+ - application/vnd.contentful.delivery.v1+json
432
+ Etag:
433
+ - W/"eed7c45300718697b883c490d40eaae3"
434
+ Server:
435
+ - Contentful
436
+ X-Content-Type-Options:
437
+ - nosniff
438
+ X-Contentful-Request-Id:
439
+ - 6d58420e56cd72d96f6d05fff7e44b84
440
+ Content-Length:
441
+ - '523'
442
+ Accept-Ranges:
443
+ - bytes
444
+ Date:
445
+ - Tue, 09 May 2017 13:39:57 GMT
446
+ Via:
447
+ - 1.1 varnish
448
+ Age:
449
+ - '3'
450
+ Connection:
451
+ - close
452
+ X-Served-By:
453
+ - cache-lax8649-LAX
454
+ X-Cache:
455
+ - HIT
456
+ X-Cache-Hits:
457
+ - '1'
458
+ X-Timer:
459
+ - S1494337197.421727,VS0,VE0
460
+ Vary:
461
+ - Accept-Encoding
462
+ body:
463
+ encoding: ASCII-8BIT
464
+ string: !binary |-
465
+ H4sIAAAAAAAAA62VSVPCMBTH73wKJmdhWkqF9tZBHRd0RsGDOhxiGphISbcg
466
+ 03H47mbpktYWL+TA9CV5S/55v/DT6/dBmqXA7f/wT26wLMLcAl6SwAzwueOF
467
+ 2MNCBgM+b0or3ZKIG4Y0ArIjTCwZyiYM70TADxlQhW1kkZnSCCKRqtihJrVa
468
+ xIScLGqaE7oFImc1eHa6XeY1L2TExgbii+OsIdrQw2HzZa+xOFUxjuW3PKca
469
+ QPnc3c9fEu8qjeORtzug/SZ8ww9a+LKua8qSTF9ACYYM+56QBYwMczIw7IEx
470
+ XZpj17h0R/bQtMfvusM+8lscnKVpuZYjHOzxZc0hwd8kJSEVutta5SikDFOW
471
+ K3I+aWda3FaBEWT/6xqECAayvTAdvC4Kh1J6sCY48KtuFNcBKNxJl6cM0v6M
472
+ p9GOG5BvLLabljXRpj9xym4Sgqm4+/OJ0LxnWZ7qFRQbj4m3vZ16xvP0OX2L
473
+ 94fHuEOQvM9U64nfleSIUBTsfXmcnEWVryCpYqmFpg6eWnfKsk8wxVf/o6o8
474
+ dxdX/N3QKdNb5qRitY1FjX91B6cJG1tDZ2LrwPCC2xkroGx10SmrVdaN2TkU
475
+ 74at1L2B2ym5O6DLX/b8xWsBj+cq0LuFUZQ12JNdouhzatp0wncOaf62ggZh
476
+ +4Nd+7+odWX19teQXHHr2Dv2fgHe1BBDHQcAAA==
477
+ http_version:
478
+ recorded_at: Tue, 09 May 2017 13:39:57 GMT
479
+ recorded_with: VCR 3.0.3