contentful-management 1.8.1 → 1.9.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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/CHANGELOG.md +15 -0
  4. data/README.md +209 -41
  5. data/contentful-management.gemspec +1 -1
  6. data/lib/contentful/management/asset.rb +1 -1
  7. data/lib/contentful/management/client.rb +155 -31
  8. data/lib/contentful/management/client_organization_methods_factory.rb +23 -0
  9. data/lib/contentful/management/client_personal_access_tokens_methods_factory.rb +27 -0
  10. data/lib/contentful/management/client_snapshot_methods_factory.rb +16 -6
  11. data/lib/contentful/management/client_space_membership_methods_factory.rb +15 -0
  12. data/lib/contentful/management/client_ui_extension_methods_factory.rb +15 -0
  13. data/lib/contentful/management/client_user_methods_factory.rb +27 -0
  14. data/lib/contentful/management/client_webhook_call_methods_factory.rb +30 -0
  15. data/lib/contentful/management/client_webhook_health_methods_factory.rb +27 -0
  16. data/lib/contentful/management/content_type.rb +10 -0
  17. data/lib/contentful/management/content_type_snapshot_methods_factory.rb +35 -0
  18. data/lib/contentful/management/editor_interface.rb +1 -1
  19. data/lib/contentful/management/organization.rb +20 -0
  20. data/lib/contentful/management/personal_access_token.rb +45 -0
  21. data/lib/contentful/management/request.rb +0 -1
  22. data/lib/contentful/management/resource.rb +4 -2
  23. data/lib/contentful/management/resource_builder.rb +15 -0
  24. data/lib/contentful/management/snapshot.rb +31 -20
  25. data/lib/contentful/management/space.rb +32 -10
  26. data/lib/contentful/management/space_membership.rb +43 -0
  27. data/lib/contentful/management/space_space_membership_methods_factory.rb +15 -0
  28. data/lib/contentful/management/space_ui_extension_methods_factory.rb +15 -0
  29. data/lib/contentful/management/ui_extension.rb +106 -0
  30. data/lib/contentful/management/user.rb +28 -0
  31. data/lib/contentful/management/version.rb +1 -1
  32. data/lib/contentful/management/webhook.rb +20 -0
  33. data/lib/contentful/management/webhook_call.rb +77 -0
  34. data/lib/contentful/management/webhook_health.rb +79 -0
  35. data/lib/contentful/management/webhook_webhook_call_methods_factory.rb +30 -0
  36. data/lib/contentful/management/webhook_webhook_health_methods_factory.rb +28 -0
  37. data/spec/fixtures/vcr_cassettes/get_request.yml +34 -17
  38. data/spec/fixtures/vcr_cassettes/organization/all.yml +100 -0
  39. data/spec/fixtures/vcr_cassettes/personal_access_token/all.yml +101 -0
  40. data/spec/fixtures/vcr_cassettes/personal_access_token/create.yml +94 -0
  41. data/spec/fixtures/vcr_cassettes/personal_access_token/find.yml +91 -0
  42. data/spec/fixtures/vcr_cassettes/personal_access_token/find_not_found.yml +88 -0
  43. data/spec/fixtures/vcr_cassettes/personal_access_token/revoke.yml +179 -0
  44. data/spec/fixtures/vcr_cassettes/snapshot/ct_all.yml +207 -0
  45. data/spec/fixtures/vcr_cassettes/snapshot/ct_find.yml +198 -0
  46. data/spec/fixtures/vcr_cassettes/snapshot/ct_find_not_found.yml +94 -0
  47. data/spec/fixtures/vcr_cassettes/space/all_disabled_cache.yml +428 -0
  48. data/spec/fixtures/vcr_cassettes/space/disabled_cache.yml +120 -0
  49. data/spec/fixtures/vcr_cassettes/space_memberships/all.yml +190 -0
  50. data/spec/fixtures/vcr_cassettes/space_memberships/create.yml +143 -0
  51. data/spec/fixtures/vcr_cassettes/space_memberships/delete.yml +322 -0
  52. data/spec/fixtures/vcr_cassettes/space_memberships/find.yml +141 -0
  53. data/spec/fixtures/vcr_cassettes/ui_extension/all.yml +1020 -0
  54. data/spec/fixtures/vcr_cassettes/ui_extension/create.yml +133 -0
  55. data/spec/fixtures/vcr_cassettes/ui_extension/delete.yml +291 -0
  56. data/spec/fixtures/vcr_cassettes/ui_extension/find.yml +126 -0
  57. data/spec/fixtures/vcr_cassettes/user/find.yml +96 -0
  58. data/spec/fixtures/vcr_cassettes/webhook_call/all.yml +151 -0
  59. data/spec/fixtures/vcr_cassettes/webhook_call/find.yml +88 -0
  60. data/spec/fixtures/vcr_cassettes/webhook_call/find_not_found.yml +93 -0
  61. data/spec/fixtures/vcr_cassettes/webhook_health/find.yml +111 -0
  62. data/spec/lib/contentful/management/client_spec.rb +25 -26
  63. data/spec/lib/contentful/management/entry_spec.rb +48 -48
  64. data/spec/lib/contentful/management/organization_spec.rb +33 -0
  65. data/spec/lib/contentful/management/personal_access_token_spec.rb +85 -0
  66. data/spec/lib/contentful/management/snapshot_spec.rb +134 -47
  67. data/spec/lib/contentful/management/space_membership_spec.rb +147 -0
  68. data/spec/lib/contentful/management/space_spec.rb +35 -1
  69. data/spec/lib/contentful/management/ui_extension_spec.rb +276 -0
  70. data/spec/lib/contentful/management/user_spec.rb +52 -0
  71. data/spec/lib/contentful/management/webhook_calls_spec.rb +69 -0
  72. data/spec/lib/contentful/management/webhook_health_spec.rb +51 -0
  73. metadata +88 -8
  74. data/lib/contentful/management/http_client.rb +0 -89
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency 'guard-rubocop'
32
32
  spec.add_development_dependency 'guard-yard'
33
33
  spec.add_development_dependency 'rubocop', '~> 0.41.0'
34
- spec.add_development_dependency 'listen', '3.0.0'
34
+ spec.add_development_dependency 'listen', '~> 3.0'
35
35
  spec.add_development_dependency 'vcr'
36
36
  spec.add_development_dependency 'webmock', '~> 1', '>= 1.17.3'
37
37
  spec.add_development_dependency 'simplecov'
@@ -53,7 +53,7 @@ module Contentful
53
53
  instance_variable_get(:@fields).keys.each do |locale|
54
54
  request = Request.new(
55
55
  client,
56
- "/#{space.id}/assets/#{id}/files/#{locale}/process",
56
+ "spaces/#{space.id}/assets/#{id}/files/#{locale}/process",
57
57
  {},
58
58
  nil,
59
59
  version: sys[:version]
@@ -3,17 +3,23 @@ require 'contentful/management/response'
3
3
  require 'contentful/management/resource_builder'
4
4
 
5
5
  require 'contentful/management/version'
6
- require 'contentful/management/http_client'
7
6
 
8
7
  require 'contentful/management/client_space_methods_factory'
8
+ require 'contentful/management/client_space_membership_methods_factory'
9
+ require 'contentful/management/client_organization_methods_factory'
10
+ require 'contentful/management/client_user_methods_factory'
9
11
  require 'contentful/management/client_api_key_methods_factory'
12
+ require 'contentful/management/client_personal_access_tokens_methods_factory'
10
13
  require 'contentful/management/client_asset_methods_factory'
11
14
  require 'contentful/management/client_content_type_methods_factory'
12
15
  require 'contentful/management/client_entry_methods_factory'
13
16
  require 'contentful/management/client_locale_methods_factory'
14
17
  require 'contentful/management/client_role_methods_factory'
18
+ require 'contentful/management/client_ui_extension_methods_factory'
15
19
  require 'contentful/management/client_editor_interface_methods_factory'
16
20
  require 'contentful/management/client_webhook_methods_factory'
21
+ require 'contentful/management/client_webhook_call_methods_factory'
22
+ require 'contentful/management/client_webhook_health_methods_factory'
17
23
  require 'contentful/management/client_upload_methods_factory'
18
24
  require 'contentful/management/client_snapshot_methods_factory'
19
25
 
@@ -28,10 +34,8 @@ module Contentful
28
34
  # Client for interacting with the Contentful Management API
29
35
  # @see _ https://www.contentful.com/developers/docs/references/content-management-api/
30
36
  class Client
31
- extend Contentful::Management::HTTPClient
32
-
33
37
  attr_reader :access_token, :configuration, :logger
34
- attr_accessor :organization_id, :version, :zero_length, :content_type_id, :dynamic_entry_cache
38
+ attr_accessor :organization_id, :version, :content_type_id, :dynamic_entry_cache
35
39
 
36
40
  # Default configuration for Contentful::Management::Client
37
41
  DEFAULT_CONFIGURATION = {
@@ -45,6 +49,7 @@ module Contentful
45
49
  log_level: Logger::INFO,
46
50
  raise_errors: false,
47
51
  dynamic_entries: [],
52
+ disable_content_type_caching: false,
48
53
  proxy_host: nil,
49
54
  proxy_port: nil,
50
55
  proxy_username: nil,
@@ -70,6 +75,7 @@ module Contentful
70
75
  # @option configuration [::Logger::DEBUG, ::Logger::INFO, ::Logger::WARN, ::Logger::ERROR] :log_level
71
76
  # @option configuration [Boolean] :raise_errors
72
77
  # @option configuration [::Array<String>] :dynamic_entries
78
+ # @option configuration [Boolean] :disable_content_type_caching
73
79
  # @option configuration [String] :proxy_host
74
80
  # @option configuration [Fixnum] :proxy_port
75
81
  # @option configuration [String] :proxy_username
@@ -88,7 +94,7 @@ module Contentful
88
94
  end
89
95
 
90
96
  # Allows manipulation of spaces in context of the current client
91
- # Allows listing all spaces for client and finding one by id.
97
+ # Allows listing all spaces for client and finding one by ID.
92
98
  # @see _ README for details.
93
99
  #
94
100
  # @return [Contentful::Management::ClientSpaceMethodsFactory]
@@ -96,8 +102,35 @@ module Contentful
96
102
  ClientSpaceMethodsFactory.new(self)
97
103
  end
98
104
 
105
+ # Allows manipulation of space memberships in context of the current client
106
+ # Allows listing all space memberships for client, creating new and finding one by ID.
107
+ # @see _ README for details.
108
+ #
109
+ # @return [Contentful::Management::ClientSpaceMembershipMethodsFactory]
110
+ def space_memberships
111
+ ClientSpaceMembershipMethodsFactory.new(self)
112
+ end
113
+
114
+ # Allows viewing of organizations in context of the current client
115
+ # Allows listing all organizations for client.
116
+ # @see _ README for details.
117
+ #
118
+ # @return [Contentful::Management::ClientOrganizationMethodsFactory]
119
+ def organizations
120
+ ClientOrganizationMethodsFactory.new(self)
121
+ end
122
+
123
+ # Allows viewing of users in context of the current client
124
+ # Allows listing all users for client.
125
+ # @see _ README for details.
126
+ #
127
+ # @return [Contentful::Management::ClientUserMethodsFactory]
128
+ def users
129
+ ClientUserMethodsFactory.new(self)
130
+ end
131
+
99
132
  # Allows manipulation of api keys in context of the current client
100
- # Allows listing all api keys for client, creating new and finding one by id.
133
+ # Allows listing all api keys for client, creating new and finding one by ID.
101
134
  # @see _ README for details.
102
135
  #
103
136
  # @return [Contentful::Management::ClientApiKeyMethodsFactory]
@@ -105,8 +138,17 @@ module Contentful
105
138
  ClientApiKeyMethodsFactory.new(self)
106
139
  end
107
140
 
141
+ # Allows manipulation of personal access tokens in context of the current client
142
+ # Allows listing all personal access tokens for client, creating new and finding one by ID.
143
+ # @see _ README for details.
144
+ #
145
+ # @return [Contentful::Management::ClientPersonalAccessTokenMethodsFactory]
146
+ def personal_access_tokens
147
+ ClientPersonalAccessTokenMethodsFactory.new(self)
148
+ end
149
+
108
150
  # Allows manipulation of assets in context of the current client
109
- # Allows listing all assets for client, creating new and finding one by id.
151
+ # Allows listing all assets for client, creating new and finding one by ID.
110
152
  # @see _ README for details.
111
153
  #
112
154
  # @return [Contentful::Management::ClientAssetMethodsFactory]
@@ -115,7 +157,7 @@ module Contentful
115
157
  end
116
158
 
117
159
  # Allows manipulation of content types in context of the current client
118
- # Allows listing all content types for client, creating new and finding one by id.
160
+ # Allows listing all content types for client, creating new and finding one by ID.
119
161
  # @see _ README for details.
120
162
  #
121
163
  # @return [Contentful::Management::ClientContentTypeMethodsFactory]
@@ -124,7 +166,7 @@ module Contentful
124
166
  end
125
167
 
126
168
  # Allows manipulation of entries in context of the current client
127
- # Allows listing all entries for client, creating new and finding one by id.
169
+ # Allows listing all entries for client, creating new and finding one by ID.
128
170
  # @see _ README for details.
129
171
  #
130
172
  # @return [Contentful::Management::ClientEntryMethodsFactory]
@@ -133,7 +175,7 @@ module Contentful
133
175
  end
134
176
 
135
177
  # Allows manipulation of locales in context of the current client
136
- # Allows listing all locales for client, creating new and finding one by id.
178
+ # Allows listing all locales for client, creating new and finding one by ID.
137
179
  # @see _ README for details.
138
180
  #
139
181
  # @return [Contentful::Management::ClientLocaleMethodsFactory]
@@ -142,7 +184,7 @@ module Contentful
142
184
  end
143
185
 
144
186
  # Allows manipulation of roles in context of the current client
145
- # Allows listing all roles for client, creating new and finding one by id.
187
+ # Allows listing all roles for client, creating new and finding one by ID.
146
188
  # @see _ README for details.
147
189
  #
148
190
  # @return [Contentful::Management::ClientRoleMethodsFactory]
@@ -150,8 +192,17 @@ module Contentful
150
192
  ClientRoleMethodsFactory.new(self)
151
193
  end
152
194
 
195
+ # Allows manipulation of UI extensions in context of the current client
196
+ # Allows listing all UI extensions for client, creating new and finding one by ID.
197
+ # @see _ README for details.
198
+ #
199
+ # @return [Contentful::Management::ClientUIExtensionMethodsFactory]
200
+ def ui_extensions
201
+ ClientUIExtensionMethodsFactory.new(self)
202
+ end
203
+
153
204
  # Allows manipulation of editor interfaces in context of the current client
154
- # Allows listing all editor interfaces for client, creating new and finding one by id.
205
+ # Allows listing all editor interfaces for client and finding one by content type.
155
206
  # @see _ README for details.
156
207
  #
157
208
  # @return [Contentful::Management::ClientEditorInterfaceMethodsFactory]
@@ -160,7 +211,7 @@ module Contentful
160
211
  end
161
212
 
162
213
  # Allows manipulation of webhooks in context of the current client
163
- # Allows listing all webhooks for client, creating new and finding one by id.
214
+ # Allows listing all webhooks for client, creating new and finding one by ID.
164
215
  # @see _ README for details.
165
216
  #
166
217
  # @return [Contentful::Management::ClientWebhookMethodsFactory]
@@ -168,8 +219,26 @@ module Contentful
168
219
  ClientWebhookMethodsFactory.new(self)
169
220
  end
170
221
 
222
+ # Allows manipulation of webhook calls in context of the current client
223
+ # Allows listing all webhook call details for client and finding one by ID.
224
+ # @see _ README for details.
225
+ #
226
+ # @return [Contentful::Management::ClientWebhookCallMethodsFactory]
227
+ def webhook_calls
228
+ ClientWebhookCallMethodsFactory.new(self)
229
+ end
230
+
231
+ # Allows manipulation of webhook health in context of the current client
232
+ # Allows listing all webhook health details for client and finding one by ID.
233
+ # @see _ README for details.
234
+ #
235
+ # @return [Contentful::Management::ClientWebhookHealthMethodsFactory]
236
+ def webhook_health
237
+ ClientWebhookHealthMethodsFactory.new(self)
238
+ end
239
+
171
240
  # Allows manipulation of uploads in context of the current client
172
- # Allows creating new and finding uploads by id.
241
+ # Allows creating new and finding uploads by ID.
173
242
  # @see _ README for details.
174
243
  #
175
244
  # @return [Contentful::Management::ClientUploadMethodsFactory]
@@ -178,12 +247,30 @@ module Contentful
178
247
  end
179
248
 
180
249
  # Allows manipulation of snapshots in context of the current client
181
- # Allows listing all webhooks for client, creating new and finding one by id.
250
+ # Allows listing all snapshots for client and finding one by ID.
251
+ # @see _ README for details.
252
+ #
253
+ # @return [Contentful::Management::ClientSnapshotMethodsFactory]
254
+ def snapshots(resource_type = 'entries')
255
+ ClientSnapshotMethodsFactory.new(self, resource_type)
256
+ end
257
+
258
+ # Allows manipulation of entry snapshots in context of the current client
259
+ # Allows listing all entry snapshots for client and finding one by ID.
260
+ # @see _ README for details.
261
+ #
262
+ # @return [Contentful::Management::ClientSnapshotMethodsFactory]
263
+ def entry_snapshots
264
+ ClientSnapshotMethodsFactory.new(self, 'entries')
265
+ end
266
+
267
+ # Allows manipulation of content type snapshots in context of the current client
268
+ # Allows listing all content type snapshots for client and finding one by ID.
182
269
  # @see _ README for details.
183
270
  #
184
271
  # @return [Contentful::Management::ClientSnapshotMethodsFactory]
185
- def snapshots
186
- ClientSnapshotMethodsFactory.new(self)
272
+ def content_type_snapshots
273
+ ClientSnapshotMethodsFactory.new(self, 'content_types')
187
274
  end
188
275
 
189
276
  # @private
@@ -194,7 +281,7 @@ module Contentful
194
281
 
195
282
  # @private
196
283
  def update_all_dynamic_entry_cache!
197
- return if configuration[:dynamic_entries].empty?
284
+ return if configuration[:dynamic_entries].empty? || configuration[:disable_content_type_caching]
198
285
 
199
286
  spaces = configuration[:dynamic_entries].map { |space_id| ::Contentful::Management::Space.find(self, space_id) }
200
287
  update_dynamic_entry_cache_for_spaces!(spaces)
@@ -202,6 +289,8 @@ module Contentful
202
289
 
203
290
  # @private
204
291
  def update_dynamic_entry_cache_for_spaces!(spaces)
292
+ return if configuration[:disable_content_type_caching]
293
+
205
294
  spaces.each do |space|
206
295
  update_dynamic_entry_cache_for_space!(space)
207
296
  end
@@ -211,6 +300,8 @@ module Contentful
211
300
  # See README for details.
212
301
  # @private
213
302
  def update_dynamic_entry_cache_for_space!(space)
303
+ return if configuration[:disable_content_type_caching]
304
+
214
305
  update_dynamic_entry_cache!(space.content_types.all)
215
306
  end
216
307
 
@@ -271,7 +362,7 @@ module Contentful
271
362
 
272
363
  # @private
273
364
  def host_url(request)
274
- (%r{^/[\w|-]+/uploads(?:/[\w|-]*)?$} =~ request.url) ? uploads_url : base_url
365
+ (%r{^spaces/[\w|-|_]+/uploads(?:/[\w|-|_]*)?$} =~ request.url) ? uploads_url : base_url
275
366
  end
276
367
 
277
368
  # @private
@@ -298,39 +389,78 @@ module Contentful
298
389
  # @private
299
390
  def delete(request)
300
391
  execute_request(request) do |url|
301
- self.class.delete_http(url, {}, request_headers(request), proxy_parameters)
392
+ http_send(:delete, url, { params: request.query }, request_headers(request), proxy_parameters)
302
393
  end
303
394
  end
304
395
 
305
396
  # @private
306
397
  def get(request)
307
398
  execute_request(request) do |url|
308
- self.class.get_http(url, request.query, request_headers(request), proxy_parameters)
399
+ http_send(:get, url, { params: request.query }, request_headers(request), proxy_parameters)
309
400
  end
310
401
  end
311
402
 
312
403
  # @private
313
404
  def post(request)
314
405
  execute_request(request) do |url|
315
- self.class.post_http(url, request.query, request_headers(request), proxy_parameters)
406
+ data = if url.include?(Client::DEFAULT_CONFIGURATION[:uploads_url])
407
+ { body: request.query }
408
+ else
409
+ { json: request.query }
410
+ end
411
+
412
+ http_send(:post, url, data, request_headers(request), proxy_parameters)
316
413
  end
317
414
  end
318
415
 
319
416
  # @private
320
417
  def put(request)
321
418
  execute_request(request) do |url|
322
- self.class.put_http(url, request.query, request_headers(request), proxy_parameters)
419
+ http_send(:put, url, { json: request.query }, request_headers(request), proxy_parameters)
323
420
  end
324
421
  end
325
422
 
423
+ # Proxy Helper
424
+ #
425
+ # @param [Symbol] type
426
+ # @param [String] url
427
+ # @param [Hash] params
428
+ # @param [Hash] headers
429
+ # @param [Hash] proxy
430
+ #
431
+ # @return [HTTP::Response]
432
+ def proxy_send(type, url, params, headers, proxy)
433
+ HTTP[headers].via(
434
+ proxy[:host],
435
+ proxy[:port],
436
+ proxy[:username],
437
+ proxy[:password]
438
+ ).public_send(type, url, params)
439
+ end
440
+
441
+ # HTTP Helper
442
+ # Abtracts the Proxy/No-Proxy logic
443
+ #
444
+ # @param [Symbol] type
445
+ # @param [String] url
446
+ # @param [Hash] params
447
+ # @param [Hash] headers
448
+ # @param [Hash] proxy
449
+ #
450
+ # @return [HTTP::Response]
451
+ def http_send(type, url, params, headers, proxy)
452
+ return proxy_send(type, url, params, headers, proxy) unless proxy[:host].nil?
453
+ HTTP[headers].public_send(type, url, params)
454
+ end
455
+
326
456
  # @private
327
457
  def base_url
328
- "#{protocol}://#{configuration[:api_url]}/spaces"
458
+ "#{protocol}://#{configuration[:api_url]}/"
329
459
  end
330
460
 
331
461
  # @private
332
462
  def uploads_url
333
- "#{protocol}://#{configuration[:uploads_url]}/spaces"
463
+ "#{protocol}://#{configuration[:uploads_url]}/"
334
464
  end
335
465
 
336
466
  # @private
@@ -436,11 +566,6 @@ module Contentful
436
566
  Hash['X-Contentful-Content-Type', content_type_id]
437
567
  end
438
568
 
439
- # @private
440
- def zero_length_header
441
- Hash['Content-Length', 0]
442
- end
443
-
444
569
  # @private
445
570
  def accept_encoding_header(encoding)
446
571
  Hash['Accept-Encoding', encoding]
@@ -455,7 +580,6 @@ module Contentful
455
580
  headers.merge! api_version_header
456
581
  headers.merge! organization_header(organization_id) if organization_id
457
582
  headers.merge! version_header(version) if version
458
- headers.merge! zero_length_header if zero_length
459
583
  headers.merge! content_type_header(content_type_id) if content_type_id
460
584
  headers.merge! accept_encoding_header('gzip') if gzip_encoded
461
585
 
@@ -0,0 +1,23 @@
1
+ require_relative 'client_association_methods_factory'
2
+
3
+ module Contentful
4
+ module Management
5
+ # Wrapper for Organizations API for usage from within Client
6
+ # @private
7
+ class ClientOrganizationMethodsFactory
8
+ include Contentful::Management::ClientAssociationMethodsFactory
9
+
10
+ def new(*)
11
+ fail 'Not supported'
12
+ end
13
+
14
+ def find(*)
15
+ fail 'Not supported'
16
+ end
17
+
18
+ def all(*)
19
+ super(nil)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,27 @@
1
+ require_relative 'client_association_methods_factory'
2
+
3
+ module Contentful
4
+ module Management
5
+ # Wrapper for Personal Access Token API for usage from within Client
6
+ # @private
7
+ class ClientPersonalAccessTokenMethodsFactory
8
+ include Contentful::Management::ClientAssociationMethodsFactory
9
+
10
+ def new(*)
11
+ fail 'Not supported'
12
+ end
13
+
14
+ def all(params = {})
15
+ super(nil, params)
16
+ end
17
+
18
+ def find(personal_access_token_id)
19
+ super(nil, personal_access_token_id)
20
+ end
21
+
22
+ def create(attributes)
23
+ super(nil, attributes)
24
+ end
25
+ end
26
+ end
27
+ end
@@ -7,21 +7,31 @@ module Contentful
7
7
  class ClientSnapshotMethodsFactory
8
8
  include Contentful::Management::ClientAssociationMethodsFactory
9
9
 
10
+ def initialize(client, resource_type)
11
+ super(client)
12
+ @resource_type = resource_type
13
+ end
14
+
10
15
  def create(*)
11
16
  fail 'Not supported'
12
17
  end
13
18
 
14
- def all(space_id, entry_id, _params = {})
15
- @resource_requester.find(
16
- space_id: space_id,
17
- entry_id: entry_id
19
+ def all(space_id, resource_id, params = {})
20
+ @resource_requester.all(
21
+ {
22
+ resource_type: @resource_type,
23
+ space_id: space_id,
24
+ resource_id: resource_id
25
+ },
26
+ params
18
27
  )
19
28
  end
20
29
 
21
- def find(space_id, entry_id, snapshot_id)
30
+ def find(space_id, resource_id, snapshot_id)
22
31
  @resource_requester.find(
32
+ resource_type: @resource_type,
23
33
  space_id: space_id,
24
- entry_id: entry_id,
34
+ resource_id: resource_id,
25
35
  snapshot_id: snapshot_id
26
36
  )
27
37
  end