contentful 2.4.0 → 2.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 033f5efe6223ef9a1e09d693c298977d21235209
4
- data.tar.gz: bbe60ca4295d8c60bebfeed1e9362d5f60e937dd
3
+ metadata.gz: b4bdb550ac66dfda8c5fe4ced4b3bde07415da83
4
+ data.tar.gz: 65aee7c14dc1473b04af7dc44815573b296db99b
5
5
  SHA512:
6
- metadata.gz: 59e84824fe37fd0410211e2a8ad6eaa52316d2ecefa53c8d75c2b0e2f4aec93cbb1222e0ebcda1e3ed9bba0b6af1311fbc3cb6eddf2c44a0d9c27e75532c3041
7
- data.tar.gz: 562af572939b7615e4de51483eac5718b820815ac757e0dd9821320f846a73be056eaae7eccc9807f869f9cc69dca052321db263e2d34a67b508eca879a9ee62
6
+ metadata.gz: 7cd6e8ae3e2dcf16568e11cc92df868e829e7eee8d44c22ab968b59233c6dfdece51c0fe34a05102eb4a7d35ea78d187c9d9332afdd371f019ec80cdb043a26e
7
+ data.tar.gz: d78e37cdae252aa9b8d7da50e588b7fd5c87982dc81db77907e520160c02d18a768be890e398975b7f31f8088c884666b3abd6e2f54b14310000da3565d3942e
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.5.0
6
+ ### Added
7
+ * Add filtering of invalid entries from API responses.
8
+
5
9
  ## 2.4.0
6
10
  ### Added
7
11
  * Added `reuse_entries` option to client configuration. This is a performance improvement, which is disabled by default due to backwards compatibility. All users are highly encouraged to enable it and test it in their applications. [#164](https://github.com/contentful/contentful.rb/pull/164)
@@ -6,7 +6,7 @@ module Contentful
6
6
  attr_reader :raw, :default_locale, :sys
7
7
 
8
8
  # rubocop:disable Metrics/ParameterLists
9
- def initialize(item, configuration = {}, _localized = false, _includes = [], entries = {}, depth = 0)
9
+ def initialize(item, configuration = {}, _localized = false, _includes = [], entries = {}, depth = 0, _errors = [])
10
10
  entries["#{item['sys']['type']}:#{item['sys']['id']}"] = self if entries && item.key?('sys')
11
11
  @raw = item
12
12
  @default_locale = configuration[:default_locale]
@@ -15,9 +15,11 @@ module Contentful
15
15
 
16
16
  private
17
17
 
18
- def coerce(field_id, value, includes, entries = {})
19
- return build_nested_resource(value, includes, entries) if Support.link?(value)
20
- return coerce_link_array(value, includes, entries) if Support.link_array?(value)
18
+ def coerce(field_id, value, includes, errors, entries = {})
19
+ if Support.link?(value) && !Support.unresolvable?(value, errors)
20
+ return build_nested_resource(value, includes, entries)
21
+ end
22
+ return coerce_link_array(value, includes, errors, entries) if Support.link_array?(value)
21
23
 
22
24
  content_type_key = Support.snakify('contentType', @configuration[:use_camel_case])
23
25
  content_type = ContentTypeCache.cache_get(sys[:space].id, sys[content_type_key.to_sym].id)
@@ -27,13 +29,13 @@ module Contentful
27
29
  return content_type_field.coerce(value) unless content_type_field.nil?
28
30
  end
29
31
 
30
- super(field_id, value, includes, entries)
32
+ super(field_id, value, includes, errors, entries)
31
33
  end
32
34
 
33
- def coerce_link_array(value, includes, entries)
35
+ def coerce_link_array(value, includes, errors, entries)
34
36
  items = []
35
37
  value.each do |link|
36
- items << build_nested_resource(link, includes, entries)
38
+ items << build_nested_resource(link, includes, entries) unless Support.unresolvable?(link, errors)
37
39
  end
38
40
 
39
41
  items
@@ -7,11 +7,11 @@ module Contentful
7
7
  attr_reader :localized
8
8
 
9
9
  # rubocop:disable Metrics/ParameterLists
10
- def initialize(item, _configuration, localized = false, includes = [], entries = {}, *)
10
+ def initialize(item, _configuration, localized = false, includes = [], entries = {}, depth = 0, errors = [])
11
11
  super
12
12
 
13
13
  @localized = localized
14
- @fields = hydrate_fields(includes, entries)
14
+ @fields = hydrate_fields(includes, entries, errors)
15
15
  define_fields_methods!
16
16
  end
17
17
 
@@ -56,7 +56,7 @@ module Contentful
56
56
  def marshal_load(raw_object)
57
57
  super(raw_object)
58
58
  @localized = raw_object[:localized]
59
- @fields = hydrate_fields(raw_object[:configuration].fetch(:includes_for_single, []), {})
59
+ @fields = hydrate_fields(raw_object[:configuration].fetch(:includes_for_single, []), {}, [])
60
60
  define_fields_methods!
61
61
  end
62
62
 
@@ -82,7 +82,7 @@ module Contentful
82
82
  end
83
83
  end
84
84
 
85
- def hydrate_localized_fields(includes, entries)
85
+ def hydrate_localized_fields(includes, errors, entries)
86
86
  locale = internal_resource_locale
87
87
  result = { locale => {} }
88
88
  raw['fields'].each do |name, locales|
@@ -93,6 +93,7 @@ module Contentful
93
93
  name,
94
94
  value,
95
95
  includes,
96
+ errors,
96
97
  entries
97
98
  )
98
99
  end
@@ -101,7 +102,7 @@ module Contentful
101
102
  result
102
103
  end
103
104
 
104
- def hydrate_nonlocalized_fields(includes, entries)
105
+ def hydrate_nonlocalized_fields(includes, errors, entries)
105
106
  result = { locale => {} }
106
107
  locale = internal_resource_locale
107
108
  raw['fields'].each do |name, value|
@@ -110,6 +111,7 @@ module Contentful
110
111
  name,
111
112
  value,
112
113
  includes,
114
+ errors,
113
115
  entries
114
116
  )
115
117
  end
@@ -117,19 +119,19 @@ module Contentful
117
119
  result
118
120
  end
119
121
 
120
- def hydrate_fields(includes, entries)
122
+ def hydrate_fields(includes, entries, errors)
121
123
  return {} unless raw.key?('fields')
122
124
 
123
125
  if localized
124
- hydrate_localized_fields(includes, entries)
126
+ hydrate_localized_fields(includes, errors, entries)
125
127
  else
126
- hydrate_nonlocalized_fields(includes, entries)
128
+ hydrate_nonlocalized_fields(includes, errors, entries)
127
129
  end
128
130
  end
129
131
 
130
132
  protected
131
133
 
132
- def coerce(_field_id, value, _includes, _entries)
134
+ def coerce(_field_id, value, _includes, _errors, _entries)
133
135
  value
134
136
  end
135
137
  end
@@ -40,7 +40,7 @@ module Contentful
40
40
  @depth = depth
41
41
  @endpoint = endpoint
42
42
  @configuration = configuration
43
- @entries = configuration[:_entries_cache] || {}
43
+ @resource_cache = configuration[:_entries_cache] || {}
44
44
  end
45
45
 
46
46
  # Starts the parsing process.
@@ -57,8 +57,11 @@ module Contentful
57
57
 
58
58
  def build_array
59
59
  includes = fetch_includes
60
+ errors = fetch_errors
61
+
60
62
  result = json['items'].map do |item|
61
- build_item(item, includes)
63
+ next if Support.unresolvable?(item, errors)
64
+ build_item(item, includes, errors)
62
65
  end
63
66
  array_class = fetch_array_class
64
67
  array_class.new(json.dup.merge('items' => result), @configuration, endpoint)
@@ -69,29 +72,33 @@ module Contentful
69
72
  build_item(json, includes)
70
73
  end
71
74
 
72
- def build_item(item, includes = [])
75
+ def build_item(item, includes = [], errors = [])
73
76
  buildables = %w(Entry Asset ContentType Space DeletedEntry DeletedAsset)
74
77
  item_type = buildables.detect { |b| b.to_s == item['sys']['type'] }
75
78
  fail UnparsableResource, 'Item type is not known, could not parse' if item_type.nil?
76
79
  item_class = resource_class(item)
77
80
 
78
81
  reuse_entries = @configuration.fetch(:reuse_entries, false)
79
- entries = @entries ? @entries : {}
82
+ resource_cache = @resource_cache ? @resource_cache : {}
80
83
 
81
84
  id = "#{item['sys']['type']}:#{item['sys']['id']}"
82
- entry = if reuse_entries && entries.key?(id)
83
- entries[id]
84
- else
85
- item_class.new(item, @configuration, localized?, includes, entries, depth)
86
- end
85
+ resource = if reuse_entries && resource_cache.key?(id)
86
+ resource_cache[id]
87
+ else
88
+ item_class.new(item, @configuration, localized?, includes, resource_cache, depth, errors)
89
+ end
87
90
 
88
- entry
91
+ resource
89
92
  end
90
93
 
91
94
  def fetch_includes
92
95
  Support.includes_from_response(json)
93
96
  end
94
97
 
98
+ def fetch_errors
99
+ json.fetch('errors', [])
100
+ end
101
+
95
102
  def resource_class(item)
96
103
  return fetch_custom_resource_class(item) if %w(Entry DeletedEntry Asset DeletedAsset).include?(item['sys']['type'])
97
104
  resource_mapping[item['sys']['type']]
@@ -19,6 +19,10 @@ module Contentful
19
19
  .downcase
20
20
  end
21
21
 
22
+ def unresolvable?(value, errors)
23
+ errors.any? { |i| i.fetch('details', {}).fetch('id', nil) == value['sys']['id'] }
24
+ end
25
+
22
26
  # Checks if value is a link
23
27
  #
24
28
  # @param value
@@ -1,5 +1,5 @@
1
1
  # Contentful Namespace
2
2
  module Contentful
3
3
  # Gem Version
4
- VERSION = '2.4.0'
4
+ VERSION = '2.5.0'
5
5
  end
data/spec/entry_spec.rb CHANGED
@@ -484,6 +484,15 @@ describe Contentful::Entry do
484
484
  expect(entry.decimal).to eq 12.3
485
485
  }
486
486
  end
487
+
488
+ it 'unresolvable entries get filtered from results' do
489
+ vcr('entries/unresolvable_filter') {
490
+ client = create_client(space: '011npgaszg5o', access_token: '42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd', dynamic_entries: :auto)
491
+ entry = client.entry('1HR1QvURo4MoSqO0eqmUeO')
492
+
493
+ expect(entry.modules.size).to eq 2
494
+ }
495
+ end
487
496
  end
488
497
 
489
498
  describe 'camel case' do
@@ -0,0 +1,159 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://cdn.contentful.com/spaces/011npgaszg5o/content_types?limit=1000
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Contentful-User-Agent:
11
+ - sdk contentful.rb/2.4.0; platform ruby/2.4.1; os macOS/16;
12
+ Authorization:
13
+ - Bearer 42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd
14
+ Content-Type:
15
+ - application/vnd.contentful.delivery.v1+json
16
+ Accept-Encoding:
17
+ - gzip
18
+ Connection:
19
+ - close
20
+ Host:
21
+ - cdn.contentful.com
22
+ User-Agent:
23
+ - http.rb/2.2.2
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
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,X-Contentful-Skip-Transformation,X-Contentful-User-Agent,X-Contentful-Enable-Alpha-Feature
31
+ Access-Control-Allow-Methods:
32
+ - GET,HEAD,OPTIONS
33
+ Access-Control-Allow-Origin:
34
+ - "*"
35
+ Access-Control-Expose-Headers:
36
+ - Etag
37
+ Access-Control-Max-Age:
38
+ - '86400'
39
+ Cache-Control:
40
+ - max-age=0
41
+ Content-Encoding:
42
+ - gzip
43
+ Content-Type:
44
+ - application/vnd.contentful.delivery.v1+json
45
+ Etag:
46
+ - W/"6b02f038bad264826a59207504c67570"
47
+ Server:
48
+ - Contentful
49
+ X-Content-Type-Options:
50
+ - nosniff
51
+ X-Contentful-Request-Id:
52
+ - 84495dc18031407c9c5592dd0e65d3f9
53
+ Content-Length:
54
+ - '1378'
55
+ Accept-Ranges:
56
+ - bytes
57
+ Date:
58
+ - Mon, 05 Mar 2018 15:21:05 GMT
59
+ Via:
60
+ - 1.1 varnish
61
+ Age:
62
+ - '0'
63
+ Connection:
64
+ - close
65
+ X-Served-By:
66
+ - cache-hhn1543-HHN
67
+ X-Cache:
68
+ - MISS
69
+ X-Cache-Hits:
70
+ - '0'
71
+ X-Timer:
72
+ - S1520263264.974790,VS0,VE1423
73
+ Vary:
74
+ - Accept-Encoding
75
+ body:
76
+ encoding: ASCII-8BIT
77
+ string: !binary |-
78
+ H4sIAAAAAAAAA+1bXXObOBR9z69geN5k7DROkzx0xutuJ93J7nRqtw/dyYMCiq1GRiyI7Lqd/PfqwwIJCcfYODUunskHXAl0uNxzz5Xk70ee56eL1L/yvrN/2QFdxJAd+cMkAQufnXv6jbehhALMzvd74jB9QDE7kgcYzREVtp48gSic80v+Iy4pL1y6j7hXGoOA30y1kCe10fAT4qQa1Q2KHnw+guLjY3Zushz1WFyx1ACFHFCv34/iKUi/TQeE41Kfp/x/gVR+fNknABROSbLQrpgPZUQiCiMq7qx1DBLIOoVD/kD8017/4rh3etw/n/QHV4PeVe/05HJw+UXvkMVhvQ4JfEQpIhF/4ssB5yP3Q5TGGCzeIYgFaoooLsbnR2AuvDsqA/NDmAYJiqm8cJRhrED59/xihT/5EzI8Jp+VeSfeKL/bxBiEMCmHjhfzO4INj/mYBACjb5ADoEkGdXf6Cfw3Q4nbxsCDOyxs9wCnZkfCXlLmGGVzed2BKsXZ1BydeoRjy7IuJntszYNawrsVf5evR5sDkWRJasSZetibheHZyWDwuk4Y2h0aCUMTVheEbmppaxAWxOVgFjQHUzNV5Xz53jZVJkCDLXfHLAYH6xl3mKaQFvlUy6EOzOmMJPStlmmMy+bMylt5lc3WpdmfnTr0jOrE+SzCCfyf7m9qDLMECLngBue0Kt+9Z9ppCpNqcCvfZNu4i8z/gDC+gY+wpE7yt5TbPUeDdd9PG0XzMmAlA2GYpiRK3f67cRkVNFkcmJygibbdITNuqcoMnWieqRUembBkcpu9taae5SrJVLXyjCgudImhihppVr99+Sj1skKapP4qGhfFBj93q8NhI9d59Y+IsrrjuTrFwbHLmgXBCscupb9l73xb4du8CNScsUvvHph0l6FRljRbltFnJ+eDfj39Xu7QhH6XJOm98Ux4+6rjd8fLa1bTv6LmDYCcVHGqpJHLuK6AWCVwbVdvJpEOjYzAgmS6pt6Sh16dvKo3nWd3aISHTFgd//D87NBGBzmREMiJ6L9ImLFc61bzSwnrORt1yq9C+bGJdMYWIxLrCwCFmPel/RompCxv7EZoOsPsh81Aj+SkX6cmN1mRWRZaRTLdksDZesxFr46QtDs0QuCi2s5jd18JfJXisGybCY6VMxYHyd/zVcTdETan0nrTMCMSwnGE4hhSMx0qVl5O16wgdhGOktQ7nt6Ip0XqdKXGLQmbVf79QR3Ctjs0QtgCH6v8OcSu/FeRtXr5ZwZByOY4K1a9rp3WfSqGV+amOxA8TBOSRaEtBvOVvd/zRqV3RrCcwmrtcll/kW+7ut+c0df21ZRX+Q5tWkDwfSkfbElUrNK/rEVUdodGiEpAY0RloNtXgWm/vi+8JhaUi71iy5RlUeH605dpDy0aXWX39tF4cVZHNrBoLHVoJBqVbOiiUUqGX1gwvCzV2My6g/o8oMCx1zPfdDoZeg5zaxQeQ2crMx2cbV0Xm+0dLe/Zxh24ju0pzgAe04W2XViIUgXws2jgOVrsFciDzIXX1uxxkxOg57VkKpsALXVoNDFqUJlkNXb9dqKVB6RjWSso747Wwrb0DJuqM7ea7a0sM0ubntRuqUPZxS4XLyqmJ7cUuCwsX9ddyCh1aCSOi3IzhJ41C9uFcFUIZ0nFPtPg08cbc1F3vbrTVg0vLSlCQv9me8OdG1/eOmxtwfUVPAL5ZSk3tj8r7G3CV42sne8i99kwChPCvqzmfCG5046Bq0Vb3BbPYje0D2VDaxAt6Kzq+wUfHLa24EqyO3NHSV5kfbQsbcGU/ofuK7h+bJv2CJVZMLKj26Onox9w4S88GD0AAA==
79
+ http_version:
80
+ recorded_at: Mon, 05 Mar 2018 15:21:05 GMT
81
+ - request:
82
+ method: get
83
+ uri: https://cdn.contentful.com/spaces/011npgaszg5o/entries?sys.id=1HR1QvURo4MoSqO0eqmUeO
84
+ body:
85
+ encoding: US-ASCII
86
+ string: ''
87
+ headers:
88
+ X-Contentful-User-Agent:
89
+ - sdk contentful.rb/2.4.0; platform ruby/2.4.1; os macOS/16;
90
+ Authorization:
91
+ - Bearer 42c9d93410a7319e9a735671fc1e415348f65e94a99fc768b70a7c649859d4fd
92
+ Content-Type:
93
+ - application/vnd.contentful.delivery.v1+json
94
+ Accept-Encoding:
95
+ - gzip
96
+ Connection:
97
+ - close
98
+ Host:
99
+ - cdn.contentful.com
100
+ User-Agent:
101
+ - http.rb/2.2.2
102
+ response:
103
+ status:
104
+ code: 200
105
+ message: OK
106
+ headers:
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,X-Contentful-Skip-Transformation,X-Contentful-User-Agent,X-Contentful-Enable-Alpha-Feature
109
+ Access-Control-Allow-Methods:
110
+ - GET,HEAD,OPTIONS
111
+ Access-Control-Allow-Origin:
112
+ - "*"
113
+ Access-Control-Expose-Headers:
114
+ - Etag
115
+ Access-Control-Max-Age:
116
+ - '86400'
117
+ Cache-Control:
118
+ - max-age=0
119
+ Content-Encoding:
120
+ - gzip
121
+ Content-Type:
122
+ - application/vnd.contentful.delivery.v1+json
123
+ Etag:
124
+ - W/"88f4e9e290d1598d405b26ca4615290c"
125
+ Server:
126
+ - Contentful
127
+ X-Content-Type-Options:
128
+ - nosniff
129
+ X-Contentful-Request-Id:
130
+ - d1eceb795c1cec9fa21f29fcb930599d
131
+ Content-Length:
132
+ - '1663'
133
+ Accept-Ranges:
134
+ - bytes
135
+ Date:
136
+ - Mon, 05 Mar 2018 15:21:05 GMT
137
+ Via:
138
+ - 1.1 varnish
139
+ Age:
140
+ - '0'
141
+ Connection:
142
+ - close
143
+ X-Served-By:
144
+ - cache-hhn1544-HHN
145
+ X-Cache:
146
+ - MISS
147
+ X-Cache-Hits:
148
+ - '0'
149
+ X-Timer:
150
+ - S1520263265.470765,VS0,VE276
151
+ Vary:
152
+ - Accept-Encoding
153
+ body:
154
+ encoding: ASCII-8BIT
155
+ string: !binary |-
156
+ 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
157
+ http_version:
158
+ recorded_at: Mon, 05 Mar 2018 15:21:05 GMT
159
+ recorded_with: VCR 3.0.3
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Contentful GmbH (Jan Lelis)
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-02-14 00:00:00.000000000 Z
13
+ date: 2018-03-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -452,6 +452,7 @@ files:
452
452
  - spec/fixtures/vcr_cassettes/entries.yml
453
453
  - spec/fixtures/vcr_cassettes/entries/issue_117.yml
454
454
  - spec/fixtures/vcr_cassettes/entries/issue_125.yml
455
+ - spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
455
456
  - spec/fixtures/vcr_cassettes/entry.yml
456
457
  - spec/fixtures/vcr_cassettes/entry/custom_resource.yml
457
458
  - spec/fixtures/vcr_cassettes/entry/include_resolution.yml
@@ -589,6 +590,7 @@ test_files:
589
590
  - spec/fixtures/vcr_cassettes/entries.yml
590
591
  - spec/fixtures/vcr_cassettes/entries/issue_117.yml
591
592
  - spec/fixtures/vcr_cassettes/entries/issue_125.yml
593
+ - spec/fixtures/vcr_cassettes/entries/unresolvable_filter.yml
592
594
  - spec/fixtures/vcr_cassettes/entry.yml
593
595
  - spec/fixtures/vcr_cassettes/entry/custom_resource.yml
594
596
  - spec/fixtures/vcr_cassettes/entry/include_resolution.yml