contentful-management 2.2.0 → 2.2.1

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
  SHA256:
3
- metadata.gz: d377237ac5fae9287e980db31e4968afa5b8ecd1628ffdc2adce1035332b57a8
4
- data.tar.gz: 3a5116a7e471a60e25baa932e64efaef17a0c3b5866a8223c2d124dff4ef2b33
3
+ metadata.gz: b75e50ebfc4202efbbd7d47c99781cafa716bc3287ebfb4ab52f6a8bf010254f
4
+ data.tar.gz: 026f56b80f835f32709a190d73af227a1f2985aa763217266fc2a39065f16f1a
5
5
  SHA512:
6
- metadata.gz: 91fce556a7f693dd2f8d08970eabfbc576cd40b21be13abfbb385ad42cba7fdab347b22f68dde00593753777516f6620592348b34a75b0838c76a2350f6712a0
7
- data.tar.gz: cd4b54ccd6a43acecb2d021096b4dd5e1142e6fd3327d2c217b38ce3e0df7d1a796162321d6f81eeec3652485df3a989b54dc7fa80d7c0ea94b486d2a5a0f0ec
6
+ metadata.gz: 02c0a808c2c80a6e41912f66154c408bdfd46e82d8df9495e116bed6f09395e88b9677a35d19034ee719c5afffc490b4ab22d72f8c8a329246b6f4f845287635
7
+ data.tar.gz: 84ae44e1a8a0df806b1ae4e569249fdbc8e2844c45c00226db9cb246d110059c2ef7e0ce7c87347251a74834c73a038d090fc92b11a503dd2621f09a0cd55f33
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Master
4
4
 
5
+ ## 2.2.1
6
+ ### Fixed
7
+ * Fixed side-effect that was causing entries created using `content_type.entries.new` to fail to save.
8
+
5
9
  ## 2.2.0
6
10
  ### Added
7
11
  * Added `#save` as a shortcut for `editor_interface.update(controls: editor_interface.controls)`. [#155](https://github.com/contentful/contentful-management.rb/issues/155)
@@ -43,7 +43,7 @@ module Contentful
43
43
 
44
44
  # @private
45
45
  def self.create_attributes(client, attributes)
46
- content_type = attributes[:content_type]
46
+ content_type = attributes.delete(:content_type)
47
47
  fields_for_create = if attributes[:fields] # create from initialized dynamic entry via save
48
48
  tmp_entry = new
49
49
  tmp_entry.instance_variable_set(:@fields, attributes.delete(:fields) || {})
@@ -117,11 +117,11 @@ module Contentful
117
117
  locale = attributes[:locale] || content_type.sys[:space].default_locale
118
118
  fields = content_type.properties[:fields]
119
119
  field_names = fields.map { |field| field.id.to_sym }
120
- attributes.keep_if { |key| field_names.include?(key) }
120
+ attributes = attributes.keep_if { |key| field_names.include?(key) }
121
121
 
122
- attributes.each do |id, value|
122
+ attributes.each_with_object({}) do |(id, value), result|
123
123
  field = fields.detect { |f| f.id.to_sym == id.to_sym }
124
- attributes[id] = { locale => parse_attribute_with_field(value, field) }
124
+ result[id] = { locale => parse_attribute_with_field(value, field) }
125
125
  end
126
126
  end
127
127
 
@@ -24,7 +24,7 @@ module Contentful
24
24
  request = Request.new(
25
25
  client,
26
26
  resource_class.build_endpoint(endpoint_options),
27
- resource_class.create_attributes(client, attributes),
27
+ resource_class.create_attributes(client, attributes.clone),
28
28
  nil,
29
29
  resource_class.create_headers(client, attributes)
30
30
  )
@@ -3,6 +3,6 @@ module Contentful
3
3
  # Management Namespace
4
4
  module Management
5
5
  # Gem Version
6
- VERSION = '2.2.0'.freeze
6
+ VERSION = '2.2.1'.freeze
7
7
  end
8
8
  end
@@ -0,0 +1,279 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.contentful.com/spaces/facgnwwgj5fe/environments/master/content_types/test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Contentful-User-Agent:
11
+ - sdk contentful-management.rb/2.2.0; platform ruby/2.5.1; os macOS/16;
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
+ User-Agent:
21
+ - http.rb/2.2.2
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,X-Contentful-Enable-Alpha-Feature
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
+ - Tue, 12 Jun 2018 12:39:08 GMT
43
+ Etag:
44
+ - '"b995d565da7819ad9bbbc285771244bd"'
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
+ - '35942'
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
+ - d8a435708c3e0b59ab6b1d9158be9a8c
63
+ Content-Length:
64
+ - '1292'
65
+ Connection:
66
+ - Close
67
+ Set-Cookie:
68
+ - incap_ses_467_673446=C1b/cN48GXgAV1hxkh97Buu+H1sAAAAASfcv4CC5DGzbGMuOjAoQhw==;
69
+ path=/; Domain=.contentful.com
70
+ - nlbi_673446=cB42ZHEIFFCa7U1o6lKYhQAAAAAY+2t4guO/ocI/jh56hVZK; path=/; Domain=.contentful.com
71
+ - visid_incap_673446=LcBv1jChSkKIvoQWmkVXGuu+H1sAAAAAQUIPAAAAAABvEGPqBWsfuhqkzEaaOOb/;
72
+ expires=Wed, 12 Jun 2019 12:00:33 GMT; path=/; Domain=.contentful.com
73
+ X-Iinfo:
74
+ - 2-32234290-32234303 NNNN CT(105 107 0) RT(1528807146445 60) q(0 0 2 -1) r(8
75
+ 8) U5
76
+ X-Cdn:
77
+ - Incapsula
78
+ body:
79
+ encoding: ASCII-8BIT
80
+ string: |
81
+ {
82
+ "sys": {
83
+ "space": {
84
+ "sys": {
85
+ "type": "Link",
86
+ "linkType": "Space",
87
+ "id": "facgnwwgj5fe"
88
+ }
89
+ },
90
+ "id": "test",
91
+ "type": "ContentType",
92
+ "createdAt": "2017-03-02T18:32:49.570Z",
93
+ "updatedAt": "2017-03-02T18:32:50.586Z",
94
+ "environment": {
95
+ "sys": {
96
+ "id": "master",
97
+ "type": "Link",
98
+ "linkType": "Environment"
99
+ }
100
+ },
101
+ "createdBy": {
102
+ "sys": {
103
+ "type": "Link",
104
+ "linkType": "User",
105
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
106
+ }
107
+ },
108
+ "updatedBy": {
109
+ "sys": {
110
+ "type": "Link",
111
+ "linkType": "User",
112
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
113
+ }
114
+ },
115
+ "publishedCounter": 1,
116
+ "version": 2,
117
+ "publishedBy": {
118
+ "sys": {
119
+ "type": "Link",
120
+ "linkType": "User",
121
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
122
+ }
123
+ },
124
+ "publishedVersion": 1,
125
+ "firstPublishedAt": "2017-03-02T18:32:50.559Z",
126
+ "publishedAt": "2017-03-02T18:32:50.559Z"
127
+ },
128
+ "displayField": "name",
129
+ "name": "Test",
130
+ "description": "",
131
+ "fields": [
132
+ {
133
+ "id": "name",
134
+ "name": "name",
135
+ "type": "Symbol",
136
+ "localized": false,
137
+ "required": false,
138
+ "validations": [],
139
+ "disabled": false,
140
+ "omitted": false
141
+ }
142
+ ]
143
+ }
144
+ http_version:
145
+ recorded_at: Tue, 12 Jun 2018 12:39:08 GMT
146
+ - request:
147
+ method: post
148
+ uri: https://api.contentful.com/spaces/facgnwwgj5fe/environments/master/entries
149
+ body:
150
+ encoding: UTF-8
151
+ string: '{"fields":{"name":{"en-US":"foobar"}}}'
152
+ headers:
153
+ X-Contentful-User-Agent:
154
+ - sdk contentful-management.rb/2.2.0; platform ruby/2.5.1; os macOS/16;
155
+ Authorization:
156
+ - Bearer <ACCESS_TOKEN>
157
+ Content-Type:
158
+ - application/vnd.contentful.management.v1+json
159
+ X-Contentful-Content-Type:
160
+ - test
161
+ Content-Type-Id:
162
+ - test
163
+ Connection:
164
+ - close
165
+ Host:
166
+ - api.contentful.com
167
+ User-Agent:
168
+ - http.rb/2.2.2
169
+ response:
170
+ status:
171
+ code: 201
172
+ message: Created
173
+ headers:
174
+ Access-Control-Allow-Headers:
175
+ - 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
176
+ Access-Control-Allow-Methods:
177
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
178
+ Access-Control-Allow-Origin:
179
+ - "*"
180
+ Access-Control-Expose-Headers:
181
+ - Etag
182
+ Access-Control-Max-Age:
183
+ - '1728000'
184
+ Cf-Space-Id:
185
+ - facgnwwgj5fe
186
+ Content-Type:
187
+ - application/vnd.contentful.management.v1+json
188
+ Date:
189
+ - Tue, 12 Jun 2018 12:39:09 GMT
190
+ Etag:
191
+ - '"cbe73cdb8d7ece4ff67125c9cdd85cd0"'
192
+ Server:
193
+ - Contentful
194
+ Strict-Transport-Security:
195
+ - max-age=15768000
196
+ X-Content-Type-Options:
197
+ - nosniff
198
+ X-Contentful-Ratelimit-Hour-Limit:
199
+ - '36000'
200
+ X-Contentful-Ratelimit-Hour-Remaining:
201
+ - '35941'
202
+ X-Contentful-Ratelimit-Reset:
203
+ - '0'
204
+ X-Contentful-Ratelimit-Second-Limit:
205
+ - '10'
206
+ X-Contentful-Ratelimit-Second-Remaining:
207
+ - '9'
208
+ X-Contentful-Request-Id:
209
+ - 967c62f7ad9284b1b7c3c7f7648315f1
210
+ Content-Length:
211
+ - '917'
212
+ Connection:
213
+ - Close
214
+ Set-Cookie:
215
+ - incap_ses_467_673446=vFoZJEqLu1vAWlhxkh97Bu2+H1sAAAAAf9ScH7sPhALnoIORNSun3g==;
216
+ path=/; Domain=.contentful.com
217
+ - nlbi_673446=wEfNOUIdSXB0V1Pv6lKYhQAAAABeL4r3wGhe0A09T8AfE2hJ; path=/; Domain=.contentful.com
218
+ - visid_incap_673446=lIyDH8l2Rd6wPg0iUMfUYe2+H1sAAAAAQUIPAAAAAABPveL4akLQXa/OfV4860wc;
219
+ expires=Wed, 12 Jun 2019 12:00:33 GMT; path=/; Domain=.contentful.com
220
+ X-Iinfo:
221
+ - 2-32234372-32234374 NNNN CT(104 104 0) RT(1528807147413 67) q(0 0 2 -1) r(20
222
+ 20) U5
223
+ X-Cdn:
224
+ - Incapsula
225
+ body:
226
+ encoding: ASCII-8BIT
227
+ string: |
228
+ {
229
+ "sys": {
230
+ "space": {
231
+ "sys": {
232
+ "type": "Link",
233
+ "linkType": "Space",
234
+ "id": "facgnwwgj5fe"
235
+ }
236
+ },
237
+ "id": "3Q8FXPXXzOs8MCYYquQgcs",
238
+ "type": "Entry",
239
+ "createdAt": "2018-06-12T12:39:09.268Z",
240
+ "updatedAt": "2018-06-12T12:39:09.268Z",
241
+ "environment": {
242
+ "sys": {
243
+ "id": "master",
244
+ "type": "Link",
245
+ "linkType": "Environment"
246
+ }
247
+ },
248
+ "createdBy": {
249
+ "sys": {
250
+ "type": "Link",
251
+ "linkType": "User",
252
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
253
+ }
254
+ },
255
+ "updatedBy": {
256
+ "sys": {
257
+ "type": "Link",
258
+ "linkType": "User",
259
+ "id": "4SejVrWT96dvL9IV4Nb7sQ"
260
+ }
261
+ },
262
+ "version": 1,
263
+ "contentType": {
264
+ "sys": {
265
+ "type": "Link",
266
+ "linkType": "ContentType",
267
+ "id": "test"
268
+ }
269
+ }
270
+ },
271
+ "fields": {
272
+ "name": {
273
+ "en-US": "foobar"
274
+ }
275
+ }
276
+ }
277
+ http_version:
278
+ recorded_at: Tue, 12 Jun 2018 12:39:10 GMT
279
+ recorded_with: VCR 4.0.0
@@ -920,6 +920,22 @@ describe Contentful::Management::Entry do
920
920
  end
921
921
  end
922
922
 
923
+ describe 'it can properly create entries from a content type using #new' do
924
+ let(:space_id) { 'facgnwwgj5fe' }
925
+ let(:environment_id) { 'master' }
926
+ let(:content_type_id) { 'test' }
927
+
928
+ it 'creates an entry' do
929
+ vcr('entry/create_with_ct_entries_new') {
930
+ new_entry = client.content_types(space_id, environment_id).find(content_type_id).entries.new
931
+ new_entry.name_with_locales = { 'en-US' => 'foobar' }
932
+
933
+ expect { new_entry.save }.not_to raise_error
934
+ expect(new_entry.name).to eq 'foobar'
935
+ }
936
+ end
937
+ end
938
+
923
939
  describe 'it can properly assign, save and publish - #61' do
924
940
  describe 'on an entry created through the api' do
925
941
  describe 'before refetch' 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: 2.2.0
4
+ version: 2.2.1
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: 2018-06-05 00:00:00.000000000 Z
13
+ date: 2018-06-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -528,6 +528,7 @@ files:
528
528
  - spec/fixtures/vcr_cassettes/entry/create.yml
529
529
  - spec/fixtures/vcr_cassettes/entry/create_with_asset.yml
530
530
  - spec/fixtures/vcr_cassettes/entry/create_with_assets.yml
531
+ - spec/fixtures/vcr_cassettes/entry/create_with_ct_entries_new.yml
531
532
  - spec/fixtures/vcr_cassettes/entry/create_with_custom_id.yml
532
533
  - spec/fixtures/vcr_cassettes/entry/create_with_entries.yml
533
534
  - spec/fixtures/vcr_cassettes/entry/create_with_entry.yml
@@ -908,6 +909,7 @@ test_files:
908
909
  - spec/fixtures/vcr_cassettes/entry/create.yml
909
910
  - spec/fixtures/vcr_cassettes/entry/create_with_asset.yml
910
911
  - spec/fixtures/vcr_cassettes/entry/create_with_assets.yml
912
+ - spec/fixtures/vcr_cassettes/entry/create_with_ct_entries_new.yml
911
913
  - spec/fixtures/vcr_cassettes/entry/create_with_custom_id.yml
912
914
  - spec/fixtures/vcr_cassettes/entry/create_with_entries.yml
913
915
  - spec/fixtures/vcr_cassettes/entry/create_with_entry.yml