contentful-management 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +37 -8
  3. data/Gemfile +0 -1
  4. data/README.md +130 -0
  5. data/Rakefile +0 -1
  6. data/contentful-management.gemspec +0 -1
  7. data/examples/blog.rb +1 -1
  8. data/lib/contentful/management.rb +0 -1
  9. data/lib/contentful/management/array.rb +0 -1
  10. data/lib/contentful/management/asset.rb +65 -26
  11. data/lib/contentful/management/client.rb +19 -9
  12. data/lib/contentful/management/content_type.rb +43 -28
  13. data/lib/contentful/management/dynamic_entry.rb +15 -15
  14. data/lib/contentful/management/entry.rb +73 -40
  15. data/lib/contentful/management/error.rb +6 -1
  16. data/lib/contentful/management/field.rb +63 -8
  17. data/lib/contentful/management/file.rb +0 -1
  18. data/lib/contentful/management/http_client.rb +0 -1
  19. data/lib/contentful/management/link.rb +0 -1
  20. data/lib/contentful/management/locale.rb +11 -3
  21. data/lib/contentful/management/location.rb +0 -1
  22. data/lib/contentful/management/request.rb +5 -7
  23. data/lib/contentful/management/resource.rb +3 -3
  24. data/lib/contentful/management/resource/array_like.rb +0 -1
  25. data/lib/contentful/management/resource/fields.rb +1 -2
  26. data/lib/contentful/management/resource/refresher.rb +3 -3
  27. data/lib/contentful/management/resource/system_properties.rb +0 -1
  28. data/lib/contentful/management/resource_builder.rb +16 -27
  29. data/lib/contentful/management/response.rb +36 -32
  30. data/lib/contentful/management/space.rb +16 -6
  31. data/lib/contentful/management/space_webhook_methods_factory.rb +0 -4
  32. data/lib/contentful/management/support.rb +0 -1
  33. data/lib/contentful/management/validation.rb +34 -0
  34. data/lib/contentful/management/version.rb +1 -2
  35. data/lib/contentful/management/webhook.rb +17 -10
  36. data/spec/fixtures/vcr_cassettes/content_type/validation/in.yml +588 -0
  37. data/spec/fixtures/vcr_cassettes/content_type/validation/in_add.yml +620 -0
  38. data/spec/fixtures/vcr_cassettes/content_type/validation/in_update.yml +668 -0
  39. data/spec/fixtures/vcr_cassettes/content_type/validation/link_content_type.yml +749 -0
  40. data/spec/fixtures/vcr_cassettes/content_type/validation/link_field.yml +770 -0
  41. data/spec/fixtures/vcr_cassettes/content_type/validation/link_mimetype_group.yml +766 -0
  42. data/spec/fixtures/vcr_cassettes/content_type/validation/multiple_add.yml +854 -0
  43. data/spec/fixtures/vcr_cassettes/content_type/validation/present.yml +808 -0
  44. data/spec/fixtures/vcr_cassettes/content_type/validation/range.yml +683 -0
  45. data/spec/fixtures/vcr_cassettes/content_type/validation/range_update.yml +697 -0
  46. data/spec/fixtures/vcr_cassettes/content_type/validation/regexp.yml +720 -0
  47. data/spec/fixtures/vcr_cassettes/content_type/validation/size.yml +791 -0
  48. data/spec/fixtures/vcr_cassettes/entry/service_unavailable.yml +52 -0
  49. data/spec/fixtures/vcr_cassettes/space/webhook/create.yml +439 -0
  50. data/spec/lib/contentful/management/asset_spec.rb +16 -16
  51. data/spec/lib/contentful/management/client_spec.rb +0 -1
  52. data/spec/lib/contentful/management/content_type_spec.rb +143 -1
  53. data/spec/lib/contentful/management/entry_spec.rb +10 -4
  54. data/spec/lib/contentful/management/locale_spec.rb +0 -1
  55. data/spec/lib/contentful/management/space_spec.rb +9 -1
  56. data/spec/lib/contentful/management/webhook_spec.rb +0 -1
  57. data/spec/spec_helper.rb +0 -1
  58. data/spec/support/vcr.rb +0 -1
  59. metadata +63 -62
@@ -0,0 +1,620 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.contentful.com/spaces/v2umtz8ths9v
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - RubyContenfulManagementGem/0.2.1
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ Content-Length:
17
+ - '0'
18
+ Host:
19
+ - api.contentful.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ "^access-Control-Expose-Headers":
26
+ - Etag
27
+ Accept-Ranges:
28
+ - bytes
29
+ Access-Control-Allow-Headers:
30
+ - 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
31
+ Access-Control-Allow-Methods:
32
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
33
+ Access-Control-Allow-Origin:
34
+ - "*"
35
+ Access-Control-Max-Age:
36
+ - '1728000'
37
+ Cache-Control:
38
+ - max-age=0
39
+ Content-Type:
40
+ - application/vnd.contentful.management.v1+json
41
+ Date:
42
+ - Wed, 15 Oct 2014 09:51:17 GMT
43
+ Etag:
44
+ - '"35407b8a88882fe5717a4701910f6ce7"'
45
+ Server:
46
+ - nginx
47
+ Status:
48
+ - 200 OK
49
+ X-Contentful-Request-Id:
50
+ - 85f-806548176
51
+ Content-Length:
52
+ - '459'
53
+ Connection:
54
+ - keep-alive
55
+ body:
56
+ encoding: UTF-8
57
+ string: |
58
+ {
59
+ "sys":{
60
+ "type":"Space",
61
+ "id":"v2umtz8ths9v",
62
+ "version":1,
63
+ "createdBy":{
64
+ "sys":{
65
+ "type":"Link",
66
+ "linkType":"User",
67
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
68
+ }
69
+ },
70
+ "createdAt":"2014-08-21T13:32:11Z",
71
+ "updatedBy":{
72
+ "sys":{
73
+ "type":"Link",
74
+ "linkType":"User",
75
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
76
+ }
77
+ },
78
+ "updatedAt":"2014-08-21T13:32:12Z"
79
+ },
80
+ "name":"CMA Demo Rails App"}
81
+ http_version:
82
+ recorded_at: Wed, 15 Oct 2014 09:53:38 GMT
83
+ - request:
84
+ method: get
85
+ uri: https://api.contentful.com/spaces/v2umtz8ths9v/content_types
86
+ body:
87
+ encoding: US-ASCII
88
+ string: ''
89
+ headers:
90
+ User-Agent:
91
+ - RubyContenfulManagementGem/0.2.1
92
+ Authorization:
93
+ - Bearer <ACCESS_TOKEN>
94
+ Content-Type:
95
+ - application/vnd.contentful.management.v1+json
96
+ Content-Length:
97
+ - '0'
98
+ Host:
99
+ - api.contentful.com
100
+ response:
101
+ status:
102
+ code: 200
103
+ message: OK
104
+ headers:
105
+ "^access-Control-Expose-Headers":
106
+ - Etag
107
+ Access-Control-Allow-Headers:
108
+ - 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
109
+ Access-Control-Allow-Methods:
110
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
111
+ Access-Control-Allow-Origin:
112
+ - "*"
113
+ Access-Control-Max-Age:
114
+ - '1728000'
115
+ Cf-Space-Id:
116
+ - v2umtz8ths9v
117
+ Content-Type:
118
+ - application/vnd.contentful.management.v1+json
119
+ Date:
120
+ - Wed, 15 Oct 2014 09:51:17 GMT
121
+ Etag:
122
+ - '"5c4d0e360d08f9a028b006b76a15db90"'
123
+ Server:
124
+ - nginx
125
+ X-Powered-By:
126
+ - Express
127
+ Content-Length:
128
+ - '5139'
129
+ Connection:
130
+ - keep-alive
131
+ body:
132
+ encoding: UTF-8
133
+ string: |
134
+ {
135
+ "sys": {
136
+ "type": "Array"
137
+ },
138
+ "total": 3,
139
+ "skip": 0,
140
+ "limit": 100,
141
+ "items": [
142
+ {
143
+ "displayField": "title",
144
+ "name": "Post",
145
+ "description": "",
146
+ "fields": [
147
+ {
148
+ "id": "title",
149
+ "name": "Title",
150
+ "type": "Text",
151
+ "localized": true,
152
+ "uiid": "2sdir2f8kcg"
153
+ },
154
+ {
155
+ "id": "author",
156
+ "name": "Author",
157
+ "type": "Text",
158
+ "localized": true,
159
+ "uiid": "4x1018907pc"
160
+ },
161
+ {
162
+ "id": "body",
163
+ "name": "Body",
164
+ "type": "Text",
165
+ "localized": true,
166
+ "uiid": "4hj7cda89hc"
167
+ },
168
+ {
169
+ "id": "title_image",
170
+ "name": "Title Image",
171
+ "type": "Link",
172
+ "linkType": "Asset",
173
+ "required": true,
174
+ "localized": true,
175
+ "uiid": "4gcqrcma8lc"
176
+ },
177
+ {
178
+ "id": "second_image",
179
+ "name": "Second Image",
180
+ "type": "Link",
181
+ "linkType": "Asset",
182
+ "localized": true,
183
+ "uiid": "40440elrugw"
184
+ },
185
+ {
186
+ "id": "category",
187
+ "name": "Category",
188
+ "type": "Link",
189
+ "linkType": "Entry",
190
+ "uiid": "49vicjvqsxs",
191
+ "localized": true
192
+ }
193
+ ],
194
+ "sys": {
195
+ "id": "post_content_type",
196
+ "type": "ContentType",
197
+ "createdAt": "2014-08-21T13:32:30.401Z",
198
+ "createdBy": {
199
+ "sys": {
200
+ "type": "Link",
201
+ "linkType": "User",
202
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
203
+ }
204
+ },
205
+ "space": {
206
+ "sys": {
207
+ "type": "Link",
208
+ "linkType": "Space",
209
+ "id": "v2umtz8ths9v"
210
+ }
211
+ },
212
+ "firstPublishedAt": "2014-08-21T13:32:43.385Z",
213
+ "publishedCounter": 2,
214
+ "publishedAt": "2014-08-27T09:18:36.995Z",
215
+ "publishedBy": {
216
+ "sys": {
217
+ "type": "Link",
218
+ "linkType": "User",
219
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
220
+ }
221
+ },
222
+ "publishedVersion": 11,
223
+ "version": 12,
224
+ "updatedAt": "2014-08-27T09:18:37.003Z",
225
+ "updatedBy": {
226
+ "sys": {
227
+ "type": "Link",
228
+ "linkType": "User",
229
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
230
+ }
231
+ }
232
+ }
233
+ },
234
+ {
235
+ "fields": [
236
+ {
237
+ "name": "testowe",
238
+ "id": "testowe",
239
+ "type": "Link",
240
+ "uiid": "3q907mcb4lc",
241
+ "linkType": "Asset",
242
+ "required": true,
243
+ "localized": true,
244
+ "validations": []
245
+ }
246
+ ],
247
+ "name": "test",
248
+ "sys": {
249
+ "id": "26eLfV14SIOeQkse44q4sw",
250
+ "type": "ContentType",
251
+ "createdAt": "2014-08-22T12:57:43.618Z",
252
+ "createdBy": {
253
+ "sys": {
254
+ "type": "Link",
255
+ "linkType": "User",
256
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
257
+ }
258
+ },
259
+ "space": {
260
+ "sys": {
261
+ "type": "Link",
262
+ "linkType": "Space",
263
+ "id": "v2umtz8ths9v"
264
+ }
265
+ },
266
+ "firstPublishedAt": "2014-08-22T12:57:53.093Z",
267
+ "publishedCounter": 2,
268
+ "version": 17,
269
+ "updatedAt": "2014-10-14T13:07:06.808Z",
270
+ "updatedBy": {
271
+ "sys": {
272
+ "type": "Link",
273
+ "linkType": "User",
274
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
275
+ }
276
+ }
277
+ }
278
+ },
279
+ {
280
+ "name": "Category",
281
+ "description": "",
282
+ "fields": [
283
+ {
284
+ "id": "name",
285
+ "name": "Name",
286
+ "type": "Text",
287
+ "localized": true,
288
+ "validations": [
289
+ {
290
+ "size": {
291
+ "min": 2,
292
+ "max": 22
293
+ }
294
+ },
295
+ {
296
+ "in": [
297
+ "dom",
298
+ "chatka"
299
+ ]
300
+ }
301
+ ]
302
+ },
303
+ {
304
+ "id": "description",
305
+ "name": "Description",
306
+ "type": "Text"
307
+ },
308
+ {
309
+ "id": "valid",
310
+ "name": "Valid",
311
+ "type": "Text",
312
+ "validations": [
313
+ {
314
+ "in": [
315
+ "foo",
316
+ "bar",
317
+ "baz"
318
+ ]
319
+ }
320
+ ]
321
+ }
322
+ ],
323
+ "sys": {
324
+ "id": "category_content_type",
325
+ "type": "ContentType",
326
+ "createdAt": "2014-08-21T13:32:20.955Z",
327
+ "createdBy": {
328
+ "sys": {
329
+ "type": "Link",
330
+ "linkType": "User",
331
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
332
+ }
333
+ },
334
+ "space": {
335
+ "sys": {
336
+ "type": "Link",
337
+ "linkType": "Space",
338
+ "id": "v2umtz8ths9v"
339
+ }
340
+ },
341
+ "firstPublishedAt": "2014-08-21T13:32:27.109Z",
342
+ "publishedCounter": 10,
343
+ "version": 207,
344
+ "updatedAt": "2014-10-15T09:51:06.289Z",
345
+ "updatedBy": {
346
+ "sys": {
347
+ "type": "Link",
348
+ "linkType": "User",
349
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
350
+ }
351
+ }
352
+ }
353
+ }
354
+ ]
355
+ }
356
+ http_version:
357
+ recorded_at: Wed, 15 Oct 2014 09:53:38 GMT
358
+ - request:
359
+ method: get
360
+ uri: https://api.contentful.com/spaces/v2umtz8ths9v/content_types/category_content_type
361
+ body:
362
+ encoding: US-ASCII
363
+ string: ''
364
+ headers:
365
+ User-Agent:
366
+ - RubyContenfulManagementGem/0.2.1
367
+ Authorization:
368
+ - Bearer <ACCESS_TOKEN>
369
+ Content-Type:
370
+ - application/vnd.contentful.management.v1+json
371
+ Content-Length:
372
+ - '0'
373
+ Host:
374
+ - api.contentful.com
375
+ response:
376
+ status:
377
+ code: 200
378
+ message: OK
379
+ headers:
380
+ "^access-Control-Expose-Headers":
381
+ - Etag
382
+ Access-Control-Allow-Headers:
383
+ - 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
384
+ Access-Control-Allow-Methods:
385
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
386
+ Access-Control-Allow-Origin:
387
+ - "*"
388
+ Access-Control-Max-Age:
389
+ - '1728000'
390
+ Cf-Space-Id:
391
+ - v2umtz8ths9v
392
+ Content-Type:
393
+ - application/vnd.contentful.management.v1+json
394
+ Date:
395
+ - Wed, 15 Oct 2014 09:51:18 GMT
396
+ Etag:
397
+ - '"5e2c8c7000da219bba7aeb41af5d62ca"'
398
+ Server:
399
+ - nginx
400
+ X-Powered-By:
401
+ - Express
402
+ Content-Length:
403
+ - '1364'
404
+ Connection:
405
+ - keep-alive
406
+ body:
407
+ encoding: UTF-8
408
+ string: |
409
+ {
410
+ "name": "Category",
411
+ "description": "",
412
+ "fields": [
413
+ {
414
+ "id": "name",
415
+ "name": "Name",
416
+ "type": "Text",
417
+ "localized": true,
418
+ "validations": [
419
+ {
420
+ "size": {
421
+ "min": 2,
422
+ "max": 22
423
+ }
424
+ },
425
+ {
426
+ "in": [
427
+ "dom",
428
+ "chatka"
429
+ ]
430
+ }
431
+ ]
432
+ },
433
+ {
434
+ "id": "description",
435
+ "name": "Description",
436
+ "type": "Text"
437
+ },
438
+ {
439
+ "id": "valid",
440
+ "name": "Valid",
441
+ "type": "Text",
442
+ "validations": [
443
+ {
444
+ "in": [
445
+ "foo",
446
+ "bar",
447
+ "baz"
448
+ ]
449
+ }
450
+ ]
451
+ }
452
+ ],
453
+ "sys": {
454
+ "id": "category_content_type",
455
+ "type": "ContentType",
456
+ "createdAt": "2014-08-21T13:32:20.955Z",
457
+ "createdBy": {
458
+ "sys": {
459
+ "type": "Link",
460
+ "linkType": "User",
461
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
462
+ }
463
+ },
464
+ "space": {
465
+ "sys": {
466
+ "type": "Link",
467
+ "linkType": "Space",
468
+ "id": "v2umtz8ths9v"
469
+ }
470
+ },
471
+ "firstPublishedAt": "2014-08-21T13:32:27.109Z",
472
+ "publishedCounter": 10,
473
+ "version": 207,
474
+ "updatedAt": "2014-10-15T09:51:06.289Z",
475
+ "updatedBy": {
476
+ "sys": {
477
+ "type": "Link",
478
+ "linkType": "User",
479
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
480
+ }
481
+ }
482
+ }
483
+ }
484
+ http_version:
485
+ recorded_at: Wed, 15 Oct 2014 09:53:39 GMT
486
+ - request:
487
+ method: put
488
+ uri: https://api.contentful.com/spaces/v2umtz8ths9v/content_types/category_content_type
489
+ body:
490
+ encoding: UTF-8
491
+ string: '{"name":"Category","description":"","fields":[{"id":"name","name":"Name","type":"Text","localized":true,"validations":[{"size":{"min":2,"max":22}},{"in":["dom","chatka"]}]},{"id":"description","name":"Description","type":"Text"},{"id":"valid","name":"Valid","type":"Text","validations":[{"in":["foo","bar","baz"]},{"size":{"min":2,"max":10}}]}]}'
492
+ headers:
493
+ User-Agent:
494
+ - RubyContenfulManagementGem/0.2.1
495
+ Authorization:
496
+ - Bearer <ACCESS_TOKEN>
497
+ Content-Type:
498
+ - application/vnd.contentful.management.v1+json
499
+ X-Contentful-Version:
500
+ - '207'
501
+ Host:
502
+ - api.contentful.com
503
+ response:
504
+ status:
505
+ code: 200
506
+ message: OK
507
+ headers:
508
+ "^access-Control-Expose-Headers":
509
+ - Etag
510
+ Access-Control-Allow-Headers:
511
+ - 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
512
+ Access-Control-Allow-Methods:
513
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
514
+ Access-Control-Allow-Origin:
515
+ - "*"
516
+ Access-Control-Max-Age:
517
+ - '1728000'
518
+ Cf-Space-Id:
519
+ - v2umtz8ths9v
520
+ Content-Type:
521
+ - application/vnd.contentful.management.v1+json
522
+ Date:
523
+ - Wed, 15 Oct 2014 09:51:35 GMT
524
+ Etag:
525
+ - '"13f6c51d81842cef7a3764c07162e24a"'
526
+ Server:
527
+ - nginx
528
+ X-Powered-By:
529
+ - Express
530
+ Content-Length:
531
+ - '1461'
532
+ Connection:
533
+ - keep-alive
534
+ body:
535
+ encoding: UTF-8
536
+ string: |
537
+ {
538
+ "name": "Category",
539
+ "description": "",
540
+ "fields": [
541
+ {
542
+ "id": "name",
543
+ "name": "Name",
544
+ "type": "Text",
545
+ "localized": true,
546
+ "validations": [
547
+ {
548
+ "size": {
549
+ "min": 2,
550
+ "max": 22
551
+ }
552
+ },
553
+ {
554
+ "in": [
555
+ "dom",
556
+ "chatka"
557
+ ]
558
+ }
559
+ ]
560
+ },
561
+ {
562
+ "id": "description",
563
+ "name": "Description",
564
+ "type": "Text"
565
+ },
566
+ {
567
+ "id": "valid",
568
+ "name": "Valid",
569
+ "type": "Text",
570
+ "validations": [
571
+ {
572
+ "in": [
573
+ "foo",
574
+ "bar",
575
+ "baz"
576
+ ]
577
+ },
578
+ {
579
+ "size": {
580
+ "min": 2,
581
+ "max": 10
582
+ }
583
+ }
584
+ ]
585
+ }
586
+ ],
587
+ "sys": {
588
+ "id": "category_content_type",
589
+ "type": "ContentType",
590
+ "createdAt": "2014-08-21T13:32:20.955Z",
591
+ "createdBy": {
592
+ "sys": {
593
+ "type": "Link",
594
+ "linkType": "User",
595
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
596
+ }
597
+ },
598
+ "space": {
599
+ "sys": {
600
+ "type": "Link",
601
+ "linkType": "Space",
602
+ "id": "v2umtz8ths9v"
603
+ }
604
+ },
605
+ "firstPublishedAt": "2014-08-21T13:32:27.109Z",
606
+ "publishedCounter": 10,
607
+ "version": 208,
608
+ "updatedAt": "2014-10-15T09:51:35.432Z",
609
+ "updatedBy": {
610
+ "sys": {
611
+ "type": "Link",
612
+ "linkType": "User",
613
+ "id": "1E7acJL8I5XUXAMHQt9Grs"
614
+ }
615
+ }
616
+ }
617
+ }
618
+ http_version:
619
+ recorded_at: Wed, 15 Oct 2014 09:53:56 GMT
620
+ recorded_with: VCR 2.9.2