contentful-management 0.4.1 → 0.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: 3581e8a67bd30789f1753d50366dd02c028574e8
4
- data.tar.gz: dffc8dcf5386575390b69436a75a9abd036ed002
3
+ metadata.gz: 3ae13b9bb15ea88eab394450ef29325340fe48e8
4
+ data.tar.gz: 67bcdac156d68a6d35da893472bc3aa0f4d0f4b7
5
5
  SHA512:
6
- metadata.gz: 4819aeb31c3f48c551657df81db59e7d38e84004936192a1c571490fa1c8f57aaf3fac1727e5db13c289ea5ff6e85db8a96fff47ecf165020b483af5b4d23774
7
- data.tar.gz: f853268626e356f0f0b6a05d4faf93ba3b8408170345fbff74668caddbf996cee9395b089d54df1887ccfbd951ea6ccba43067f3115a49cf451e05d3930e5446
6
+ metadata.gz: 41d3ca3acf06a94f24a08be3e773734b75d90c7f4cd41aa14341aa4ae90252ad749ec97f4fdfb234d29614cf205f44cd4785162fe762fd1e894f3e70d2800393
7
+ data.tar.gz: b2e8e16655c8ddbab2e187b7332e8ebf5cfbb5e38d72a1d21fc349214363c6490a738d7d3cb4d3ca46ea0f3f8ceca2c4373b412c307f2c1ab4d1c5b6726262cc
data/.gitignore CHANGED
@@ -22,3 +22,4 @@ tmp
22
22
  mkmf.log
23
23
  .idea
24
24
  .idea/**/*
25
+ .DS_STORE
@@ -1,5 +1,13 @@
1
1
  # Change Log
2
2
 
3
+ ## 0.5.0
4
+ ### Added
5
+ * Allow setting a default locale when creating a space [#43](https://github.com/contentful/contentful-management.rb/pull/43)
6
+
7
+ ### Fixed
8
+ * Handle `UnprocessableEntity` (HTTP 422) as its own error. [#42](https://github.com/contentful/contentful-management.rb/pull/42)
9
+
10
+
3
11
  ## 0.4.1
4
12
  ### Fixed
5
13
  * Handle 409 responses as errors [#39](https://github.com/contentful/contentful-management.rb/pull/39)
@@ -9,9 +17,11 @@
9
17
  * Return Keep attribute if it's already a hash [#33](https://github.com/contentful/contentful-management.rb/pull/33)
10
18
  * Typo in header [#34](https://github.com/contentful/contentful-management.rb/pull/34)
11
19
  * Items are nil when creating an array field for a content type [#35](https://github.com/contentful/contentful-management.rb/issues/35)
20
+
12
21
  ### Added
13
22
  * `raise_errors` can be enabled, disabled by default [#38](https://github.com/contentful/contentful-management.rb/pull/38)
14
23
 
24
+
15
25
  ## 0.3.1
16
26
  ### Added
17
27
  * Logging of requests
@@ -25,58 +35,66 @@
25
35
  * Cleaned the code
26
36
  * Remove encoding strings from the source code files
27
37
 
38
+
28
39
  ## 0.2.1
29
40
  ### Fixed
30
- * Fix: Use array for symbols in entry fields
41
+ * Use array for symbols in entry fields
42
+
31
43
 
32
44
  ## 0.2.0
33
45
  ### Fixed
34
- * Fix: create entry with multiple locales, skip attributes for not localized fields in content types
35
- * Fix: reload Assets
46
+ * create entry with multiple locales, skip attributes for not localized fields in content types
47
+ * reload Assets
36
48
 
37
49
  ### Added
38
50
  * Add optional gzip encoding
39
51
 
52
+
40
53
  ## 0.1.0
41
54
  ### Added
42
55
  * Support for web hooks
43
56
  * Image url to asset
44
57
 
45
58
  ### Fixed
46
- * Fix: remove implicit processing of assets.
47
- * Fix: Gem is modifying nil #17
48
- * Fix: rename asset.process_files to asset.process
59
+ * remove implicit processing of assets.
60
+ * Gem is modifying nil #17
61
+ * rename asset.process_files to asset.process
49
62
 
50
63
  ### Other
51
64
  * Cleaning code
52
65
 
66
+
53
67
  ## 0.0.3
54
68
  ### Added:
55
69
  * More documentation
56
70
 
57
71
  ### Fixed:
58
- * Fix: next_page feature
59
- * Fix: create entry with specific locale
60
- * Fix: service unavailable error (503)
61
- * Fix: reload method on objects
72
+ * next_page feature
73
+ * create entry with specific locale
74
+ * service unavailable error (503)
75
+ * reload method on objects
76
+
62
77
  ### Other
63
78
  * Code cleanup
64
79
 
80
+
65
81
  ## 0.0.2
66
82
  ### Fixed
67
83
  * Fix: Convert an Entry to a DynamicEntry after being created.
68
84
 
85
+
69
86
  ## 0.0.1
70
87
  ### Added
71
- * Adding rdoc
72
- * Adding filter by content_type id
88
+ * rdoc
89
+ * filter by content_type id
73
90
 
74
91
  ### Fixed
75
- * Fix: Headers not properly cleared between requests
76
- * Fix: Create entries with custom identifier
92
+ * Headers not properly cleared between requests
93
+ * Create entries with custom identifier
77
94
 
78
95
  ### Other
79
96
  * Code cleanup
80
97
 
98
+
81
99
  ## 0.0.1-pre
82
100
  * alpha pre-release
data/README.md CHANGED
@@ -69,6 +69,11 @@ or in the context of the organization (if you have multiple organizations within
69
69
  blog_space = Contentful::Management::Space.create(name: 'Blog Space', organization_id: 'organization_id')
70
70
  ```
71
71
 
72
+ If you want to create a default locale different from `en-US`:
73
+ ```ruby
74
+ blog_space = Contentful::Management::Space.create(name: 'Blog Space', default_locale: 'de-DE')
75
+ ```
76
+
72
77
  Updating a space:
73
78
 
74
79
  ```ruby
@@ -314,7 +319,7 @@ entries = blog_space.entries.all
314
319
  Retrieving all entries from the space with given content type:
315
320
 
316
321
  ```ruby
317
- entries = blog_space.entries.all(content_type_id: content_type.id)
322
+ entries = blog_space.entries.all(content_type: content_type.id)
318
323
  ```
319
324
 
320
325
  or
@@ -454,12 +459,12 @@ Takes optional min and max parameters and validates the size of the array (numbe
454
459
  ```ruby
455
460
  validation_size = Contentful::Management::Validation.new
456
461
  validation_size.size = { min: 10, max: 15 }
457
- blog_post_content_type.fields.create(id: 'valid', name: 'Test In', type: 'Text', validations: [validation_size])
462
+ blog_post_content_type.fields.create(id: 'valid', name: 'Test SIZE', type: 'Text', validations: [validation_size])
458
463
  ```
459
464
 
460
465
  #### range
461
466
 
462
- Takes a string that reflects a JS regex and flags, validates against a string. See JS Reference for the parameters.
467
+ Takes optional min and max parameters and validates the range of a value.
463
468
 
464
469
  ```ruby
465
470
  validation_range = Contentful::Management::Validation.new
@@ -484,7 +489,7 @@ Takes an array of content type ids and validates that the link points to an entr
484
489
  ```ruby
485
490
  validation_link_content_type = Contentful::Management::Validation.new
486
491
  validation_link_content_type.link_content_type = ['post_content_type_id']
487
- blog_post_content_type.fields.create(id: 'entry', name: 'Regex', type: 'Entry', validations: [validation_link_content_type])
492
+ blog_post_content_type.fields.create(id: 'entry', name: 'Test linkContentType', type: 'Entry', validations: [validation_link_content_type])
488
493
  ```
489
494
 
490
495
  #### linkMimetypeGroup
@@ -43,7 +43,7 @@ module Contentful
43
43
  locale = attributes[:locale]
44
44
  asset = new
45
45
  asset.instance_variable_set(:@fields, attributes[:fields] || {})
46
- asset.locale = attributes[:locale] if attributes[:locale]
46
+ asset.locale = attributes[:locale] || client.default_locale
47
47
  asset.title = attributes[:title] if attributes[:title]
48
48
  asset.description = attributes[:description] if attributes[:description]
49
49
  asset.file = attributes[:file] if attributes[:file]
@@ -24,6 +24,8 @@ module Contentful
24
24
  Conflict
25
25
  when 401
26
26
  Unauthorized
27
+ when 422
28
+ UnprocessableEntity
27
29
  when 500
28
30
  ServerError
29
31
  when 503
@@ -49,10 +51,14 @@ module Contentful
49
51
  # 401
50
52
  class Unauthorized < Error
51
53
  end
52
-
54
+
53
55
  # 409
54
56
  class Conflict < Error
55
57
  end
58
+
59
+ # 422
60
+ class UnprocessableEntity < Error
61
+ end
56
62
 
57
63
  # 500
58
64
  class ServerError < Error
@@ -32,7 +32,7 @@ module Contentful
32
32
  parse_json!
33
33
  elsif no_content_response?
34
34
  @status = :no_content
35
- elsif no_resource_or_bad_request?
35
+ elsif resource_error?
36
36
  parse_contentful_error
37
37
  else
38
38
  parse_http_error
@@ -60,8 +60,8 @@ module Contentful
60
60
  @object = Error[raw.status].new(self)
61
61
  end
62
62
 
63
- def no_resource_or_bad_request?
64
- [400, 404].include?(raw.status)
63
+ def resource_error?
64
+ [400, 404, 422].include?(raw.status)
65
65
  end
66
66
 
67
67
  def no_content_response?
@@ -21,6 +21,7 @@ module Contentful
21
21
 
22
22
  property :name, :string
23
23
  property :organization, :string
24
+ property :default_locale, :string
24
25
  property :locales, Locale
25
26
 
26
27
  # Gets a collection of spaces.
@@ -50,9 +51,10 @@ module Contentful
50
51
  # Takes a hash of attributes with optional organization id if client has more than one organization.
51
52
  # Returns a Contentful::Management::Space.
52
53
  def self.create(attributes)
54
+ default_locale = attributes[:default_locale] || client.default_locale
53
55
  request = Request.new(
54
56
  '',
55
- {'name' => attributes.fetch(:name)},
57
+ {'name' => attributes.fetch(:name), defaultLocale: default_locale},
56
58
  id = nil,
57
59
  organization_id: attributes[:organization_id]
58
60
  )
@@ -1,5 +1,5 @@
1
1
  module Contentful
2
2
  module Management
3
- VERSION = '0.4.1'
3
+ VERSION = '0.5.0'
4
4
  end
5
5
  end
@@ -0,0 +1,187 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.contentful.com/spaces
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"new space","defaultLocale":"pl-PL"}'
9
+ headers:
10
+ User-Agent:
11
+ - RubyContentfulManagementGem/0.4.1
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ X-Contentful-Organization:
17
+ - 1EQPR5IHrPx94UY4AViTYO
18
+ Host:
19
+ - api.contentful.com
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ Accept-Ranges:
26
+ - bytes
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
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
+ Cache-Control:
38
+ - max-age=0
39
+ Content-Type:
40
+ - application/vnd.contentful.management.v1+json
41
+ Date:
42
+ - Wed, 26 Nov 2014 08:05:56 GMT
43
+ Etag:
44
+ - '"990079f8976c99c08d757eb086729c52"'
45
+ Location:
46
+ - https://api.contentful.com/spaces/1j2osuxmfs25
47
+ Server:
48
+ - nginx
49
+ Status:
50
+ - 201 Created
51
+ X-Contentful-Request-Id:
52
+ - 71a-1097168226
53
+ Content-Length:
54
+ - '450'
55
+ Connection:
56
+ - keep-alive
57
+ body:
58
+ encoding: UTF-8
59
+ string: |
60
+ {
61
+ "sys":{
62
+ "type":"Space",
63
+ "id":"1j2osuxmfs25",
64
+ "version":1,
65
+ "createdBy":{
66
+ "sys":{
67
+ "type":"Link",
68
+ "linkType":"User",
69
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
70
+ }
71
+ },
72
+ "createdAt":"2014-11-26T08:05:52Z",
73
+ "updatedBy":{
74
+ "sys":{
75
+ "type":"Link",
76
+ "linkType":"User",
77
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
78
+ }
79
+ },
80
+ "updatedAt":"2014-11-26T08:05:53Z"
81
+ },
82
+ "name":"new space"}
83
+ http_version:
84
+ recorded_at: Wed, 26 Nov 2014 08:05:57 GMT
85
+ - request:
86
+ method: get
87
+ uri: https://api.contentful.com/spaces/1j2osuxmfs25/locales
88
+ body:
89
+ encoding: US-ASCII
90
+ string: ''
91
+ headers:
92
+ User-Agent:
93
+ - RubyContentfulManagementGem/0.4.1
94
+ Authorization:
95
+ - Bearer <ACCESS_TOKEN>
96
+ Content-Type:
97
+ - application/vnd.contentful.management.v1+json
98
+ Content-Length:
99
+ - '0'
100
+ Host:
101
+ - api.contentful.com
102
+ response:
103
+ status:
104
+ code: 200
105
+ message: OK
106
+ headers:
107
+ Accept-Ranges:
108
+ - bytes
109
+ Access-Control-Allow-Headers:
110
+ - 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
111
+ Access-Control-Allow-Methods:
112
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
113
+ Access-Control-Allow-Origin:
114
+ - "*"
115
+ Access-Control-Expose-Headers:
116
+ - Etag
117
+ Access-Control-Max-Age:
118
+ - '1728000'
119
+ Cache-Control:
120
+ - max-age=0
121
+ Content-Type:
122
+ - application/vnd.contentful.management.v1+json
123
+ Date:
124
+ - Wed, 26 Nov 2014 08:05:56 GMT
125
+ Etag:
126
+ - '"e003b11a376b701bdbeed0165cf21b44"'
127
+ Server:
128
+ - nginx
129
+ Status:
130
+ - 200 OK
131
+ X-Contentful-Request-Id:
132
+ - f1c-641211146
133
+ Content-Length:
134
+ - '930'
135
+ Connection:
136
+ - keep-alive
137
+ body:
138
+ encoding: UTF-8
139
+ string: |
140
+ {
141
+ "sys":{
142
+ "type":"Array"
143
+ },
144
+ "items":[
145
+ {
146
+ "sys":{
147
+ "type":"Locale",
148
+ "id":"7wpzPPTX0QahGa7rVtE6MR",
149
+ "version":0,
150
+ "space":{
151
+ "sys":{
152
+ "type":"Link",
153
+ "linkType":"Space",
154
+ "id":"1j2osuxmfs25"
155
+ }
156
+ },
157
+ "createdBy":{
158
+ "sys":{
159
+ "type":"Link",
160
+ "linkType":"User",
161
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
162
+ }
163
+ },
164
+ "createdAt":"2014-11-26T08:05:53Z",
165
+ "updatedBy":{
166
+ "sys":{
167
+ "type":"Link",
168
+ "linkType":"User",
169
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
170
+ }
171
+ },
172
+ "updatedAt":"2014-11-26T08:05:53Z"
173
+ },
174
+ "name":"pl-PL",
175
+ "code":"pl-PL",
176
+ "default":true,
177
+ "contentManagementApi":true,
178
+ "publish":true,
179
+ "contentDeliveryApi":true
180
+ }
181
+ ],
182
+ "total":1,
183
+ "limit":25,
184
+ "skip":0}
185
+ http_version:
186
+ recorded_at: Wed, 26 Nov 2014 08:05:57 GMT
187
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,187 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://api.contentful.com/spaces
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"name":"pl space","defaultLocale":"pl-pl"}'
9
+ headers:
10
+ User-Agent:
11
+ - RubyContentfulManagementGem/0.4.1
12
+ Authorization:
13
+ - Bearer <ACCESS_TOKEN>
14
+ Content-Type:
15
+ - application/vnd.contentful.management.v1+json
16
+ X-Contentful-Organization:
17
+ - 1EQPR5IHrPx94UY4AViTYO
18
+ Host:
19
+ - api.contentful.com
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ Accept-Ranges:
26
+ - bytes
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
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
+ Cache-Control:
38
+ - max-age=0
39
+ Content-Type:
40
+ - application/vnd.contentful.management.v1+json
41
+ Date:
42
+ - Tue, 25 Nov 2014 15:44:02 GMT
43
+ Etag:
44
+ - '"d7bbe1d4a322e2d57c8ae5f6e60bb920"'
45
+ Location:
46
+ - https://api.contentful.com/spaces/xg3e2w77diga
47
+ Server:
48
+ - nginx
49
+ Status:
50
+ - 201 Created
51
+ X-Contentful-Request-Id:
52
+ - 71a-1096805342
53
+ Content-Length:
54
+ - '449'
55
+ Connection:
56
+ - keep-alive
57
+ body:
58
+ encoding: UTF-8
59
+ string: |
60
+ {
61
+ "sys":{
62
+ "type":"Space",
63
+ "id":"xg3e2w77diga",
64
+ "version":1,
65
+ "createdBy":{
66
+ "sys":{
67
+ "type":"Link",
68
+ "linkType":"User",
69
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
70
+ }
71
+ },
72
+ "createdAt":"2014-11-25T15:43:59Z",
73
+ "updatedBy":{
74
+ "sys":{
75
+ "type":"Link",
76
+ "linkType":"User",
77
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
78
+ }
79
+ },
80
+ "updatedAt":"2014-11-25T15:43:59Z"
81
+ },
82
+ "name":"pl space"}
83
+ http_version:
84
+ recorded_at: Tue, 25 Nov 2014 15:44:01 GMT
85
+ - request:
86
+ method: get
87
+ uri: https://api.contentful.com/spaces/xg3e2w77diga/locales
88
+ body:
89
+ encoding: US-ASCII
90
+ string: ''
91
+ headers:
92
+ User-Agent:
93
+ - RubyContentfulManagementGem/0.4.1
94
+ Authorization:
95
+ - Bearer <ACCESS_TOKEN>
96
+ Content-Type:
97
+ - application/vnd.contentful.management.v1+json
98
+ Content-Length:
99
+ - '0'
100
+ Host:
101
+ - api.contentful.com
102
+ response:
103
+ status:
104
+ code: 200
105
+ message: OK
106
+ headers:
107
+ Accept-Ranges:
108
+ - bytes
109
+ Access-Control-Allow-Headers:
110
+ - 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
111
+ Access-Control-Allow-Methods:
112
+ - DELETE,GET,HEAD,POST,PUT,OPTIONS
113
+ Access-Control-Allow-Origin:
114
+ - "*"
115
+ Access-Control-Expose-Headers:
116
+ - Etag
117
+ Access-Control-Max-Age:
118
+ - '1728000'
119
+ Cache-Control:
120
+ - max-age=0
121
+ Content-Type:
122
+ - application/vnd.contentful.management.v1+json
123
+ Date:
124
+ - Tue, 25 Nov 2014 15:44:03 GMT
125
+ Etag:
126
+ - '"b00d24c14d4099a3e87619f20153ce85"'
127
+ Server:
128
+ - nginx
129
+ Status:
130
+ - 200 OK
131
+ X-Contentful-Request-Id:
132
+ - 85f-1322536095
133
+ Content-Length:
134
+ - '930'
135
+ Connection:
136
+ - keep-alive
137
+ body:
138
+ encoding: UTF-8
139
+ string: |
140
+ {
141
+ "sys":{
142
+ "type":"Array"
143
+ },
144
+ "items":[
145
+ {
146
+ "sys":{
147
+ "type":"Locale",
148
+ "id":"6cYjTjEe9oaQnaVHWVGuIZ",
149
+ "version":0,
150
+ "space":{
151
+ "sys":{
152
+ "type":"Link",
153
+ "linkType":"Space",
154
+ "id":"xg3e2w77diga"
155
+ }
156
+ },
157
+ "createdBy":{
158
+ "sys":{
159
+ "type":"Link",
160
+ "linkType":"User",
161
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
162
+ }
163
+ },
164
+ "createdAt":"2014-11-25T15:43:59Z",
165
+ "updatedBy":{
166
+ "sys":{
167
+ "type":"Link",
168
+ "linkType":"User",
169
+ "id":"1E7acJL8I5XUXAMHQt9Grs"
170
+ }
171
+ },
172
+ "updatedAt":"2014-11-25T15:43:59Z"
173
+ },
174
+ "name":"pl-pl",
175
+ "code":"pl-pl",
176
+ "default":true,
177
+ "contentManagementApi":true,
178
+ "publish":true,
179
+ "contentDeliveryApi":true
180
+ }
181
+ ],
182
+ "total":1,
183
+ "limit":25,
184
+ "skip":0}
185
+ http_version:
186
+ recorded_at: Tue, 25 Nov 2014 15:44:02 GMT
187
+ recorded_with: VCR 2.9.3
@@ -37,6 +37,12 @@ module Contentful
37
37
  expect(result).to be_kind_of Contentful::Management::NotFound
38
38
  end
39
39
  end
40
+ it 'returns space for a given key' do
41
+ vcr('space/find') do
42
+ space = subject.find(space_id)
43
+ expect(space.id).to eql space_id
44
+ end
45
+ end
40
46
  end
41
47
 
42
48
  describe '#destroy' do
@@ -78,6 +84,25 @@ module Contentful
78
84
  expect(space).to be_kind_of Contentful::Management::AccessDenied
79
85
  end
80
86
  end
87
+ context 'create with locale' do
88
+ it 'creates a space within a specified default locale' do
89
+ vcr('space/create_with_locale') do
90
+ space = subject.create(name: 'pl space', organization_id: '1EQPR5IHrPx94UY4AViTYO', default_locale: 'pl-pl')
91
+ expect(space).to be_kind_of Contentful::Management::Space
92
+ expect(space.name).to eq 'pl space'
93
+ expect(space.locales.all.first.code).to eql 'pl-pl'
94
+ end
95
+ end
96
+ it 'creates a space within a client default locale' do
97
+ vcr('space/create_with_client_default_locale') do
98
+ Client.new('<ACCESS_TOKEN>', default_locale: 'pl-PL')
99
+ space = subject.create(name: 'new space', organization_id: '1EQPR5IHrPx94UY4AViTYO')
100
+ expect(space).to be_kind_of Contentful::Management::Space
101
+ expect(space.name).to eq 'new space'
102
+ expect(space.locales.all.first.code).to eql 'pl-PL'
103
+ end
104
+ end
105
+ end
81
106
  end
82
107
 
83
108
  describe '#update' do
@@ -172,7 +197,8 @@ module Contentful
172
197
  publish: true,
173
198
  contentDeliveryApi: true,
174
199
  code: 'ru-RU')
175
- expect(locale).to be_kind_of Contentful::Management::Error
200
+ expect(locale).to be_kind_of Contentful::Management::UnprocessableEntity
201
+ expect(locale.response.error_message).to eql 'The resource you sent in the body is invalid.'
176
202
  end
177
203
  end
178
204
 
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: 0.4.1
4
+ version: 0.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: 2014-11-07 00:00:00.000000000 Z
13
+ date: 2014-12-04 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: http
@@ -383,6 +383,8 @@ files:
383
383
  - spec/fixtures/vcr_cassettes/space/content_type/find.yml
384
384
  - spec/fixtures/vcr_cassettes/space/create.yml
385
385
  - spec/fixtures/vcr_cassettes/space/create_when_limit_has_been_reached.yml
386
+ - spec/fixtures/vcr_cassettes/space/create_with_client_default_locale.yml
387
+ - spec/fixtures/vcr_cassettes/space/create_with_locale.yml
386
388
  - spec/fixtures/vcr_cassettes/space/create_with_unknown_organization.yml
387
389
  - spec/fixtures/vcr_cassettes/space/create_without_organization.yml
388
390
  - spec/fixtures/vcr_cassettes/space/destory.yml
@@ -612,6 +614,8 @@ test_files:
612
614
  - spec/fixtures/vcr_cassettes/space/content_type/find.yml
613
615
  - spec/fixtures/vcr_cassettes/space/create.yml
614
616
  - spec/fixtures/vcr_cassettes/space/create_when_limit_has_been_reached.yml
617
+ - spec/fixtures/vcr_cassettes/space/create_with_client_default_locale.yml
618
+ - spec/fixtures/vcr_cassettes/space/create_with_locale.yml
615
619
  - spec/fixtures/vcr_cassettes/space/create_with_unknown_organization.yml
616
620
  - spec/fixtures/vcr_cassettes/space/create_without_organization.yml
617
621
  - spec/fixtures/vcr_cassettes/space/destory.yml