contentful-management 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f3249dad1b37ff8e203c02f2bb3721b96e111728
4
- data.tar.gz: a9b3a74a14feeac1d843f368cff6cdae238c6f70
3
+ metadata.gz: a5375f7ca984d57cac6d910e9499a7fee451f57f
4
+ data.tar.gz: 7d847b47c7cb3f9af9dae098f869fb99b4cd04dc
5
5
  SHA512:
6
- metadata.gz: 109d6ed87ff6e487f96bc2614a790154036af420a88c712a5197c7ba76a0692afa12023f1e2674c895a598e98ee61b25d832c6dfac76bd4039a2711ec659b555
7
- data.tar.gz: 54abb173ac94d6f501ea27d5d654fd00063072d29b16a413599e8414e6374ef445613cabdb39ccdbffac9c273f7187c3fa29842f48bc7f8946096e1dd3b65500
6
+ metadata.gz: 648da2fcb41cb3007f9201e606f460f20b72104b03c6dd57ee5df680d7fca13162b9bfc08018cf4e779d0ff858bc7536d06c8d3a2010239fecab4ff776e93304
7
+ data.tar.gz: 194e585093ea3025e1b582aa60a96b3d4871afd2030cd9b3cbd5b8b8f29879819d5a7bc56987bfd66adeed95febdd3cb6f188717cb65b920b1b875532f72e53a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Master
4
4
 
5
+ ## 1.5.0
6
+ ### Added
7
+ * Added support for Select Operator in Entries and Assets
8
+
5
9
  ## 1.4.0
6
10
  ### Added
7
11
  * Added support for Fallback Locales (`nil` values get now removed from the requests on `#update` and `#create`)
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency 'json', '~> 1.8'
23
23
 
24
24
  spec.add_development_dependency 'bundler', '~> 1.6'
25
- spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'rake', '< 11.0'
26
+ spec.add_development_dependency 'public_suffix', '< 1.5'
26
27
 
27
28
  spec.add_development_dependency 'rspec', '~> 3'
28
29
  spec.add_development_dependency 'rspec-its'
@@ -24,6 +24,11 @@ module Contentful
24
24
  ClientAssetMethodsFactory
25
25
  end
26
26
 
27
+ # @private
28
+ def self.pre_process_params(parameters)
29
+ Support.normalize_select!(parameters)
30
+ end
31
+
27
32
  # @private
28
33
  def self.create_attributes(client, attributes)
29
34
  asset = new
@@ -24,6 +24,11 @@ module Contentful
24
24
 
25
25
  attr_accessor :content_type
26
26
 
27
+ # @private
28
+ def self.pre_process_params(parameters)
29
+ Support.normalize_select!(parameters)
30
+ end
31
+
27
32
  # @private
28
33
  def self.endpoint
29
34
  'entries'
@@ -207,6 +207,11 @@ module Contentful
207
207
  )
208
208
  end
209
209
 
210
+ # @private
211
+ def pre_process_params(parameters)
212
+ parameters
213
+ end
214
+
210
215
  # @private
211
216
  def create_attributes(_client, _attributes)
212
217
  {}
@@ -11,6 +11,7 @@ module Contentful
11
11
  end
12
12
 
13
13
  def all(endpoint_options = {}, query = {})
14
+ query = resource_class.pre_process_params(query)
14
15
  get(endpoint_options, query)
15
16
  end
16
17
 
@@ -17,6 +17,17 @@ module Contentful
17
17
  oldval.class.to_s == 'Hash' && newval.class.to_s == 'Hash' ? deep_hash_merge(oldval, newval) : newval
18
18
  end
19
19
  end
20
+
21
+ def normalize_select!(parameters)
22
+ return parameters unless parameters.key?(:select)
23
+
24
+ parameters[:select] = parameters[:select].split(',').map(&:strip) if parameters[:select].is_a? String
25
+ parameters[:select] = parameters[:select].reject { |p| p.start_with?('sys.') }
26
+ parameters[:select] << 'sys' unless parameters[:select].include?('sys')
27
+ parameters[:select] = parameters[:select].join(',')
28
+
29
+ parameters
30
+ end
20
31
  end
21
32
  end
22
33
  end
@@ -3,6 +3,6 @@ module Contentful
3
3
  # Management Namespace
4
4
  module Management
5
5
  # Gem Version
6
- VERSION = '1.4.0'
6
+ VERSION = '1.5.0'
7
7
  end
8
8
  end
@@ -0,0 +1,137 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.contentful.com/spaces/cfexampleapi/assets?select=fields.title,sys&sys.id=nyancat
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - RubyContentfulManagementGem/1.4.0
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.contentful.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Access-Control-Allow-Headers:
26
+ - 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
27
+ Access-Control-Allow-Methods:
28
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
29
+ Access-Control-Allow-Origin:
30
+ - "*"
31
+ Access-Control-Expose-Headers:
32
+ - Etag
33
+ Access-Control-Max-Age:
34
+ - '1728000'
35
+ Cf-Space-Id:
36
+ - cfexampleapi
37
+ Content-Type:
38
+ - application/vnd.contentful.management.v1+json
39
+ Date:
40
+ - Fri, 16 Dec 2016 17:57:18 GMT
41
+ Etag:
42
+ - '"b1e04275d327bd92a0b7708469e61e54"'
43
+ Server:
44
+ - Contentful
45
+ Strict-Transport-Security:
46
+ - max-age=15768000
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Contentful-Ratelimit-Hour-Limit:
50
+ - '18000'
51
+ X-Contentful-Ratelimit-Hour-Remaining:
52
+ - '17860'
53
+ X-Contentful-Ratelimit-Reset:
54
+ - '0'
55
+ X-Contentful-Ratelimit-Second-Limit:
56
+ - '10'
57
+ X-Contentful-Ratelimit-Second-Remaining:
58
+ - '9'
59
+ X-Contentful-Request-Id:
60
+ - fccc4fc0c16dcbc89993ba46ef11722a
61
+ Content-Length:
62
+ - '1220'
63
+ Connection:
64
+ - Close
65
+ Set-Cookie:
66
+ - incap_ses_472_673446=0RSRWi7W0hlhIMcXnuGMBv0qVFgAAAAArAVpzrhH2sNu9g8/gS4xGQ==;
67
+ path=/; Domain=.contentful.com
68
+ - nlbi_673446=p9epGdYA1RrEr+hV6lKYhQAAAAAZNLPwoIBxQLcTIy81I+Jj; path=/; Domain=.contentful.com
69
+ - visid_incap_673446=TKmNQo+PRJamIXAbX/aRVv0qVFgAAAAAQUIPAAAAAABwhsCdHN7togOQgjwxEmlG;
70
+ expires=Sat, 16 Dec 2017 11:10:55 GMT; path=/; Domain=.contentful.com
71
+ X-Iinfo:
72
+ - 8-39954889-39954903 NNNN CT(101 101 0) RT(1481911034611 70) q(0 0 2 -1) r(30
73
+ 30) U5
74
+ X-Cdn:
75
+ - Incapsula
76
+ body:
77
+ encoding: ASCII-8BIT
78
+ string: |
79
+ {
80
+ "sys": {
81
+ "type": "Array"
82
+ },
83
+ "total": 1,
84
+ "skip": 0,
85
+ "limit": 100,
86
+ "items": [
87
+ {
88
+ "fields": {
89
+ "title": {
90
+ "en-US": "Nyan Cat"
91
+ }
92
+ },
93
+ "sys": {
94
+ "space": {
95
+ "sys": {
96
+ "type": "Link",
97
+ "linkType": "Space",
98
+ "id": "cfexampleapi"
99
+ }
100
+ },
101
+ "id": "nyancat",
102
+ "type": "Asset",
103
+ "createdAt": "2013-09-02T14:54:17.868Z",
104
+ "updatedAt": "2013-09-02T14:56:34.264Z",
105
+ "createdBy": {
106
+ "sys": {
107
+ "type": "Link",
108
+ "linkType": "User",
109
+ "id": "7BslKh9TdKGOK41VmLDjFZ"
110
+ }
111
+ },
112
+ "updatedBy": {
113
+ "sys": {
114
+ "type": "Link",
115
+ "linkType": "User",
116
+ "id": "7BslKh9TdKGOK41VmLDjFZ"
117
+ }
118
+ },
119
+ "publishedCounter": 1,
120
+ "version": 2,
121
+ "publishedBy": {
122
+ "sys": {
123
+ "type": "Link",
124
+ "linkType": "User",
125
+ "id": "7BslKh9TdKGOK41VmLDjFZ"
126
+ }
127
+ },
128
+ "publishedVersion": 1,
129
+ "firstPublishedAt": "2013-09-02T14:56:34.240Z",
130
+ "publishedAt": "2013-09-02T14:56:34.240Z"
131
+ }
132
+ }
133
+ ]
134
+ }
135
+ http_version:
136
+ recorded_at: Fri, 16 Dec 2016 17:57:18 GMT
137
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,144 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.contentful.com/spaces/cfexampleapi/entries?content_type=cat&select=fields.lives,sys&sys.id=nyancat
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - RubyContentfulManagementGem/1.4.0
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ Connection:
17
+ - close
18
+ Host:
19
+ - api.contentful.com
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Access-Control-Allow-Headers:
26
+ - 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
27
+ Access-Control-Allow-Methods:
28
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
29
+ Access-Control-Allow-Origin:
30
+ - "*"
31
+ Access-Control-Expose-Headers:
32
+ - Etag
33
+ Access-Control-Max-Age:
34
+ - '1728000'
35
+ Cf-Space-Id:
36
+ - cfexampleapi
37
+ Content-Type:
38
+ - application/vnd.contentful.management.v1+json
39
+ Date:
40
+ - Fri, 16 Dec 2016 18:00:04 GMT
41
+ Etag:
42
+ - '"ed0826e81d22bcd08b35f94f4bc82d1e"'
43
+ Server:
44
+ - Contentful
45
+ Strict-Transport-Security:
46
+ - max-age=15768000
47
+ X-Content-Type-Options:
48
+ - nosniff
49
+ X-Contentful-Ratelimit-Hour-Limit:
50
+ - '18000'
51
+ X-Contentful-Ratelimit-Hour-Remaining:
52
+ - '17883'
53
+ X-Contentful-Ratelimit-Reset:
54
+ - '0'
55
+ X-Contentful-Ratelimit-Second-Limit:
56
+ - '10'
57
+ X-Contentful-Ratelimit-Second-Remaining:
58
+ - '9'
59
+ X-Contentful-Request-Id:
60
+ - 28a7082823b538951d9a099bac40c527
61
+ Content-Length:
62
+ - '1374'
63
+ Connection:
64
+ - Close
65
+ Set-Cookie:
66
+ - incap_ses_472_673446=IJw9TuV0ZGKtUsgXnuGMBqMrVFgAAAAAi4iCWS8V/VnXGKNdm/wKyg==;
67
+ path=/; Domain=.contentful.com
68
+ - nlbi_673446=ktbvABNwb38Nw5Mv6lKYhQAAAAC4U8Sqbk2yWH0JO+36N3dB; path=/; Domain=.contentful.com
69
+ - visid_incap_673446=s+iXCCDpTkmJETU1n9MwnqMrVFgAAAAAQUIPAAAAAABRit5PDIa8+j0nzfJqL/e8;
70
+ expires=Sat, 16 Dec 2017 11:10:55 GMT; path=/; Domain=.contentful.com
71
+ X-Iinfo:
72
+ - 8-39995933-39995956 NNNN CT(92 188 0) RT(1481911203237 69) q(0 0 2 -1) r(5
73
+ 5) U5
74
+ X-Cdn:
75
+ - Incapsula
76
+ body:
77
+ encoding: ASCII-8BIT
78
+ string: |
79
+ {
80
+ "sys": {
81
+ "type": "Array"
82
+ },
83
+ "total": 1,
84
+ "skip": 0,
85
+ "limit": 100,
86
+ "items": [
87
+ {
88
+ "fields": {
89
+ "lives": {
90
+ "en-US": 1337
91
+ }
92
+ },
93
+ "sys": {
94
+ "space": {
95
+ "sys": {
96
+ "type": "Link",
97
+ "linkType": "Space",
98
+ "id": "cfexampleapi"
99
+ }
100
+ },
101
+ "id": "nyancat",
102
+ "type": "Entry",
103
+ "createdAt": "2013-06-27T22:46:15.910Z",
104
+ "updatedAt": "2016-05-19T11:40:57.752Z",
105
+ "createdBy": {
106
+ "sys": {
107
+ "type": "Link",
108
+ "linkType": "User",
109
+ "id": "7BslKh9TdKGOK41VmLDjFZ"
110
+ }
111
+ },
112
+ "updatedBy": {
113
+ "sys": {
114
+ "type": "Link",
115
+ "linkType": "User",
116
+ "id": "5NItczv8FWvPn5UTJpTOMM"
117
+ }
118
+ },
119
+ "publishedCounter": 5,
120
+ "version": 15,
121
+ "publishedBy": {
122
+ "sys": {
123
+ "type": "Link",
124
+ "linkType": "User",
125
+ "id": "7BslKh9TdKGOK41VmLDjFZ"
126
+ }
127
+ },
128
+ "publishedVersion": 10,
129
+ "firstPublishedAt": "2013-06-27T22:46:19.513Z",
130
+ "publishedAt": "2013-09-04T09:19:39.027Z",
131
+ "contentType": {
132
+ "sys": {
133
+ "type": "Link",
134
+ "linkType": "ContentType",
135
+ "id": "cat"
136
+ }
137
+ }
138
+ }
139
+ }
140
+ ]
141
+ }
142
+ http_version:
143
+ recorded_at: Fri, 16 Dec 2016 18:00:04 GMT
144
+ recorded_with: VCR 3.0.3
@@ -34,6 +34,12 @@ module Contentful
34
34
  assets.next_page
35
35
  end
36
36
  end
37
+ it 'supports select operator' do
38
+ vcr('asset/select_operator') do
39
+ nyancat = subject.all('cfexampleapi', 'sys.id' => 'nyancat', select: 'fields.title').first
40
+ expect(nyancat.fields).to eq({ title: 'Nyan Cat' })
41
+ end
42
+ end
37
43
  end
38
44
 
39
45
  describe '.all_published' do
@@ -53,6 +53,12 @@ module Contentful
53
53
  entries.next_page
54
54
  end
55
55
  end
56
+ it 'supports select operator' do
57
+ vcr('entry/select_operator') do
58
+ nyancat = subject.all('cfexampleapi', 'sys.id' => 'nyancat', content_type: 'cat', select: 'fields.lives').first
59
+ expect(nyancat.fields).to eq({lives: 1337})
60
+ end
61
+ end
56
62
  end
57
63
 
58
64
  describe '.all_published' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contentful-management
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Protas
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-10-18 00:00:00.000000000 Z
13
+ date: 2016-12-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -72,16 +72,30 @@ dependencies:
72
72
  name: rake
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ">="
75
+ - - "<"
76
76
  - !ruby/object:Gem::Version
77
- version: '0'
77
+ version: '11.0'
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ">="
82
+ - - "<"
83
83
  - !ruby/object:Gem::Version
84
- version: '0'
84
+ version: '11.0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: public_suffix
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "<"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.5'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '1.5'
85
99
  - !ruby/object:Gem::Dependency
86
100
  name: rspec
87
101
  requirement: !ruby/object:Gem::Requirement
@@ -305,6 +319,7 @@ files:
305
319
  - spec/fixtures/vcr_cassettes/asset/reload.yml
306
320
  - spec/fixtures/vcr_cassettes/asset/reload_with_fields.yml
307
321
  - spec/fixtures/vcr_cassettes/asset/save_update.yml
322
+ - spec/fixtures/vcr_cassettes/asset/select_operator.yml
308
323
  - spec/fixtures/vcr_cassettes/asset/set_locale.yml
309
324
  - spec/fixtures/vcr_cassettes/asset/unarchive.yml
310
325
  - spec/fixtures/vcr_cassettes/asset/unarchive_already_unarchive.yml
@@ -443,6 +458,7 @@ files:
443
458
  - spec/fixtures/vcr_cassettes/entry/search_filter/range_operators_greater_than_or_equal.yml
444
459
  - spec/fixtures/vcr_cassettes/entry/search_filter/range_operators_less.yml
445
460
  - spec/fixtures/vcr_cassettes/entry/search_filter/reverse_order_sys_updatedAt.yml
461
+ - spec/fixtures/vcr_cassettes/entry/select_operator.yml
446
462
  - spec/fixtures/vcr_cassettes/entry/service_unavailable.yml
447
463
  - spec/fixtures/vcr_cassettes/entry/too_many_requests.yml
448
464
  - spec/fixtures/vcr_cassettes/entry/too_many_requests_retry.yml
@@ -599,6 +615,7 @@ test_files:
599
615
  - spec/fixtures/vcr_cassettes/asset/reload.yml
600
616
  - spec/fixtures/vcr_cassettes/asset/reload_with_fields.yml
601
617
  - spec/fixtures/vcr_cassettes/asset/save_update.yml
618
+ - spec/fixtures/vcr_cassettes/asset/select_operator.yml
602
619
  - spec/fixtures/vcr_cassettes/asset/set_locale.yml
603
620
  - spec/fixtures/vcr_cassettes/asset/unarchive.yml
604
621
  - spec/fixtures/vcr_cassettes/asset/unarchive_already_unarchive.yml
@@ -737,6 +754,7 @@ test_files:
737
754
  - spec/fixtures/vcr_cassettes/entry/search_filter/range_operators_greater_than_or_equal.yml
738
755
  - spec/fixtures/vcr_cassettes/entry/search_filter/range_operators_less.yml
739
756
  - spec/fixtures/vcr_cassettes/entry/search_filter/reverse_order_sys_updatedAt.yml
757
+ - spec/fixtures/vcr_cassettes/entry/select_operator.yml
740
758
  - spec/fixtures/vcr_cassettes/entry/service_unavailable.yml
741
759
  - spec/fixtures/vcr_cassettes/entry/too_many_requests.yml
742
760
  - spec/fixtures/vcr_cassettes/entry/too_many_requests_retry.yml