desk_api 0.1.3 → 0.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 +4 -4
- data/.travis.yml +1 -2
- data/Gemfile +0 -6
- data/README.md +38 -31
- data/desk_api.gemspec +1 -4
- data/lib/desk_api.rb +5 -7
- data/lib/desk_api/client.rb +44 -57
- data/lib/desk_api/configuration.rb +89 -95
- data/lib/desk_api/default.rb +51 -55
- data/lib/desk_api/error.rb +42 -44
- data/lib/desk_api/rate_limit.rb +20 -22
- data/lib/desk_api/resource.rb +142 -65
- data/lib/desk_api/version.rb +1 -1
- data/spec/cassettes/DeskApi_Client/using_Basic_Authentication/_delete/deletes_a_resource.yml +22 -22
- data/spec/cassettes/DeskApi_Client/using_Basic_Authentication/_get/fetches_resources.yml +26 -26
- data/spec/cassettes/DeskApi_Client/using_Basic_Authentication/_patch/updates_a_resource.yml +30 -30
- data/spec/cassettes/DeskApi_Client/using_Basic_Authentication/_post/creates_a_resource.yml +27 -27
- data/spec/cassettes/DeskApi_Client/using_OAuth/_delete/deletes_a_resource.yml +22 -22
- data/spec/cassettes/DeskApi_Client/using_OAuth/_get/fetches_resources.yml +31 -286
- data/spec/cassettes/DeskApi_Client/using_OAuth/_patch/updates_a_resource.yml +35 -35
- data/spec/cassettes/DeskApi_Client/using_OAuth/_post/creates_a_resource.yml +28 -28
- data/spec/cassettes/DeskApi_Error/_from_response/can_be_created_from_a_faraday_response.yml +22 -22
- data/spec/cassettes/DeskApi_Error/_from_response/uses_the_body_message_if_present.yml +22 -22
- data/spec/cassettes/DeskApi_Error/on_validation_error/allows_access_to_error_hash.yml +22 -22
- data/spec/cassettes/DeskApi_Resource/_by_url/finds_resources_by_url.yml +37 -286
- data/spec/cassettes/DeskApi_Resource/_create/creates_a_new_topic.yml +27 -27
- data/spec/cassettes/DeskApi_Resource/_create/throws_an_error_creating_a_user.yml +54 -0
- data/spec/cassettes/DeskApi_Resource/_delete/deletes_a_resource.yml +83 -79
- data/spec/cassettes/DeskApi_Resource/_delete/throws_an_error_deleting_a_non_deletalbe_resource.yml +78 -28
- data/spec/cassettes/DeskApi_Resource/_exec_/can_be_forced_to_reload.yml +34 -285
- data/spec/cassettes/DeskApi_Resource/_exec_/loads_the_current_resource.yml +34 -285
- data/spec/cassettes/DeskApi_Resource/_find/has_an_alias_by_id.yml +54 -0
- data/spec/cassettes/DeskApi_Resource/_find/loads_the_requested_resource.yml +54 -0
- data/spec/cassettes/DeskApi_Resource/_get_linked_resource/returns_linked_resources.yml +113 -0
- data/spec/cassettes/DeskApi_Resource/_get_linked_resource/returns_nil_if_link_is_nil.yml +62 -0
- data/spec/cassettes/DeskApi_Resource/_get_linked_resource/saves_the_linked_resource_instead_of_the_url.yml +113 -0
- data/spec/cassettes/DeskApi_Resource/_method_missing/loads_the_resource_to_find_a_suitable_method.yml +34 -285
- data/spec/cassettes/DeskApi_Resource/_method_missing/raises_an_error_if_method_does_not_exist.yml +34 -285
- data/spec/cassettes/DeskApi_Resource/_page/keeps_the_resource_as_loaded.yml +113 -0
- data/spec/cassettes/DeskApi_Resource/_page/returns_the_current_page_and_loads_if_page_not_defined.yml +62 -0
- data/spec/cassettes/DeskApi_Resource/_page/sets_the_resource_to_not_loaded.yml +113 -0
- data/spec/cassettes/DeskApi_Resource/_search/allows_searching_on_search_enabled_resources.yml +23 -23
- data/spec/cassettes/DeskApi_Resource/_search/throws_an_error_if_search_is_not_enabled.yml +52 -0
- data/spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml +178 -58
- data/spec/cassettes/DeskApi_Resource/_update/throws_an_error_updating_a_user.yml +86 -28
- data/spec/cassettes/DeskApi_Resource/_update/updates_a_topic.yml +61 -57
- data/spec/desk_api/client_spec.rb +9 -16
- data/spec/desk_api/resource_spec.rb +118 -43
- data/spec/spec_helper.rb +1 -1
- metadata +24 -102
- data/lib/desk_api/action/create.rb +0 -15
- data/lib/desk_api/action/delete.rb +0 -9
- data/lib/desk_api/action/embeddable.rb +0 -47
- data/lib/desk_api/action/field.rb +0 -33
- data/lib/desk_api/action/link.rb +0 -29
- data/lib/desk_api/action/resource.rb +0 -14
- data/lib/desk_api/action/search.rb +0 -15
- data/lib/desk_api/action/update.rb +0 -17
- data/lib/desk_api/error/method_not_supported.rb +0 -9
- data/lib/desk_api/error/not_embeddable.rb +0 -8
- data/lib/desk_api/error/not_updateable.rb +0 -10
- data/lib/desk_api/error/parse_error.rb +0 -9
- data/lib/desk_api/resource/article.rb +0 -10
- data/lib/desk_api/resource/article_translation.rb +0 -8
- data/lib/desk_api/resource/attachment.rb +0 -8
- data/lib/desk_api/resource/case.rb +0 -11
- data/lib/desk_api/resource/company.rb +0 -8
- data/lib/desk_api/resource/customer.rb +0 -9
- data/lib/desk_api/resource/filter.rb +0 -7
- data/lib/desk_api/resource/inbound_mailbox.rb +0 -7
- data/lib/desk_api/resource/integration_url.rb +0 -9
- data/lib/desk_api/resource/job.rb +0 -9
- data/lib/desk_api/resource/label.rb +0 -9
- data/lib/desk_api/resource/macro.rb +0 -9
- data/lib/desk_api/resource/macro_action.rb +0 -7
- data/lib/desk_api/resource/note.rb +0 -7
- data/lib/desk_api/resource/page.rb +0 -64
- data/lib/desk_api/resource/reply.rb +0 -10
- data/lib/desk_api/resource/topic.rb +0 -9
- data/lib/desk_api/resource/topic_translation.rb +0 -9
- data/lib/desk_api/resource/user_preference.rb +0 -7
- data/lib/desk_api/resources.json +0 -76
- data/spec/cassettes/DeskApi_Client/_delete/deletes_a_resource.yml +0 -48
- data/spec/cassettes/DeskApi_Client/_get/fetches_resources.yml +0 -55
- data/spec/cassettes/DeskApi_Client/_patch/updates_a_resource.yml +0 -62
- data/spec/cassettes/DeskApi_Client/_post/creates_a_resource.yml +0 -58
- data/spec/cassettes/DeskApi_Resource_Case/once_closed/can_not_be_updated.yml +0 -124
- data/spec/cassettes/DeskApi_Resource_Page/_find/has_an_alias_by_id.yml +0 -54
- data/spec/cassettes/DeskApi_Resource_Page/_find/loads_the_requested_resource.yml +0 -54
- data/spec/cassettes/DeskApi_Resource_Page/_page/keeps_the_resource_as_loaded.yml +0 -113
- data/spec/cassettes/DeskApi_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml +0 -313
- data/spec/cassettes/DeskApi_Resource_Page/_page/sets_the_resource_to_not_loaded.yml +0 -113
- data/spec/desk_api/resource/case_spec.rb +0 -28
- data/spec/desk_api/resource/page_spec.rb +0 -68
data/spec/spec_helper.rb
CHANGED
@@ -35,7 +35,7 @@ rescue LoadError
|
|
35
35
|
end
|
36
36
|
|
37
37
|
VCR.configure do |config|
|
38
|
-
config.hook_into :
|
38
|
+
config.hook_into :faraday
|
39
39
|
config.cassette_library_dir = 'spec/cassettes'
|
40
40
|
config.configure_rspec_metadata!
|
41
41
|
config.before_record { |i| i.request.headers.delete('Authorization') }
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: desk_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Stachl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: multi_json
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: faraday
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,20 +52,6 @@ dependencies:
|
|
66
52
|
- - '>='
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: typhoeus
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - '>='
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - '>='
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
56
|
name: addressable
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,20 +66,6 @@ dependencies:
|
|
94
66
|
- - '>='
|
95
67
|
- !ruby/object:Gem::Version
|
96
68
|
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: activesupport
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
69
|
- !ruby/object:Gem::Dependency
|
112
70
|
name: hashie
|
113
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -195,7 +153,7 @@ dependencies:
|
|
195
153
|
description: This is a lightweight, flexible ruby gem to interact with the desk.com
|
196
154
|
REST API. It allows to create, read and delete resources available through the API
|
197
155
|
endpoints. It can be used either with OAuth or HTTP Basic Authentication.
|
198
|
-
email:
|
156
|
+
email: thomas@desk.com
|
199
157
|
executables: []
|
200
158
|
extensions: []
|
201
159
|
extra_rdoc_files:
|
@@ -214,14 +172,6 @@ files:
|
|
214
172
|
- desk_api.gemspec
|
215
173
|
- lib/desk.rb
|
216
174
|
- lib/desk_api.rb
|
217
|
-
- lib/desk_api/action/create.rb
|
218
|
-
- lib/desk_api/action/delete.rb
|
219
|
-
- lib/desk_api/action/embeddable.rb
|
220
|
-
- lib/desk_api/action/field.rb
|
221
|
-
- lib/desk_api/action/link.rb
|
222
|
-
- lib/desk_api/action/resource.rb
|
223
|
-
- lib/desk_api/action/search.rb
|
224
|
-
- lib/desk_api/action/update.rb
|
225
175
|
- lib/desk_api/client.rb
|
226
176
|
- lib/desk_api/configuration.rb
|
227
177
|
- lib/desk_api/default.rb
|
@@ -235,12 +185,8 @@ files:
|
|
235
185
|
- lib/desk_api/error/gateway_timeout.rb
|
236
186
|
- lib/desk_api/error/internal_server_error.rb
|
237
187
|
- lib/desk_api/error/method_not_allowed.rb
|
238
|
-
- lib/desk_api/error/method_not_supported.rb
|
239
188
|
- lib/desk_api/error/not_acceptable.rb
|
240
|
-
- lib/desk_api/error/not_embeddable.rb
|
241
189
|
- lib/desk_api/error/not_found.rb
|
242
|
-
- lib/desk_api/error/not_updateable.rb
|
243
|
-
- lib/desk_api/error/parse_error.rb
|
244
190
|
- lib/desk_api/error/parser_error.rb
|
245
191
|
- lib/desk_api/error/server_error.rb
|
246
192
|
- lib/desk_api/error/service_unavailable.rb
|
@@ -251,32 +197,8 @@ files:
|
|
251
197
|
- lib/desk_api/rate_limit.rb
|
252
198
|
- lib/desk_api/request/retry.rb
|
253
199
|
- lib/desk_api/resource.rb
|
254
|
-
- lib/desk_api/resource/article.rb
|
255
|
-
- lib/desk_api/resource/article_translation.rb
|
256
|
-
- lib/desk_api/resource/attachment.rb
|
257
|
-
- lib/desk_api/resource/case.rb
|
258
|
-
- lib/desk_api/resource/company.rb
|
259
|
-
- lib/desk_api/resource/customer.rb
|
260
|
-
- lib/desk_api/resource/filter.rb
|
261
|
-
- lib/desk_api/resource/inbound_mailbox.rb
|
262
|
-
- lib/desk_api/resource/integration_url.rb
|
263
|
-
- lib/desk_api/resource/job.rb
|
264
|
-
- lib/desk_api/resource/label.rb
|
265
|
-
- lib/desk_api/resource/macro.rb
|
266
|
-
- lib/desk_api/resource/macro_action.rb
|
267
|
-
- lib/desk_api/resource/note.rb
|
268
|
-
- lib/desk_api/resource/page.rb
|
269
|
-
- lib/desk_api/resource/reply.rb
|
270
|
-
- lib/desk_api/resource/topic.rb
|
271
|
-
- lib/desk_api/resource/topic_translation.rb
|
272
|
-
- lib/desk_api/resource/user_preference.rb
|
273
|
-
- lib/desk_api/resources.json
|
274
200
|
- lib/desk_api/response/raise_error.rb
|
275
201
|
- lib/desk_api/version.rb
|
276
|
-
- spec/cassettes/DeskApi_Client/_delete/deletes_a_resource.yml
|
277
|
-
- spec/cassettes/DeskApi_Client/_get/fetches_resources.yml
|
278
|
-
- spec/cassettes/DeskApi_Client/_patch/updates_a_resource.yml
|
279
|
-
- spec/cassettes/DeskApi_Client/_post/creates_a_resource.yml
|
280
202
|
- spec/cassettes/DeskApi_Client/using_Basic_Authentication/_delete/deletes_a_resource.yml
|
281
203
|
- spec/cassettes/DeskApi_Client/using_Basic_Authentication/_get/fetches_resources.yml
|
282
204
|
- spec/cassettes/DeskApi_Client/using_Basic_Authentication/_patch/updates_a_resource.yml
|
@@ -290,30 +212,32 @@ files:
|
|
290
212
|
- spec/cassettes/DeskApi_Error/on_validation_error/allows_access_to_error_hash.yml
|
291
213
|
- spec/cassettes/DeskApi_Resource/_by_url/finds_resources_by_url.yml
|
292
214
|
- spec/cassettes/DeskApi_Resource/_create/creates_a_new_topic.yml
|
215
|
+
- spec/cassettes/DeskApi_Resource/_create/throws_an_error_creating_a_user.yml
|
293
216
|
- spec/cassettes/DeskApi_Resource/_delete/deletes_a_resource.yml
|
294
217
|
- spec/cassettes/DeskApi_Resource/_delete/throws_an_error_deleting_a_non_deletalbe_resource.yml
|
295
218
|
- spec/cassettes/DeskApi_Resource/_exec_/can_be_forced_to_reload.yml
|
296
219
|
- spec/cassettes/DeskApi_Resource/_exec_/loads_the_current_resource.yml
|
220
|
+
- spec/cassettes/DeskApi_Resource/_find/has_an_alias_by_id.yml
|
221
|
+
- spec/cassettes/DeskApi_Resource/_find/loads_the_requested_resource.yml
|
222
|
+
- spec/cassettes/DeskApi_Resource/_get_linked_resource/returns_linked_resources.yml
|
223
|
+
- spec/cassettes/DeskApi_Resource/_get_linked_resource/returns_nil_if_link_is_nil.yml
|
224
|
+
- spec/cassettes/DeskApi_Resource/_get_linked_resource/saves_the_linked_resource_instead_of_the_url.yml
|
297
225
|
- spec/cassettes/DeskApi_Resource/_method_missing/loads_the_resource_to_find_a_suitable_method.yml
|
298
226
|
- spec/cassettes/DeskApi_Resource/_method_missing/raises_an_error_if_method_does_not_exist.yml
|
227
|
+
- spec/cassettes/DeskApi_Resource/_page/keeps_the_resource_as_loaded.yml
|
228
|
+
- spec/cassettes/DeskApi_Resource/_page/returns_the_current_page_and_loads_if_page_not_defined.yml
|
229
|
+
- spec/cassettes/DeskApi_Resource/_page/sets_the_resource_to_not_loaded.yml
|
299
230
|
- spec/cassettes/DeskApi_Resource/_search/allows_searching_on_search_enabled_resources.yml
|
231
|
+
- spec/cassettes/DeskApi_Resource/_search/throws_an_error_if_search_is_not_enabled.yml
|
300
232
|
- spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml
|
301
233
|
- spec/cassettes/DeskApi_Resource/_update/throws_an_error_updating_a_user.yml
|
302
234
|
- spec/cassettes/DeskApi_Resource/_update/updates_a_topic.yml
|
303
|
-
- spec/cassettes/DeskApi_Resource_Case/once_closed/can_not_be_updated.yml
|
304
|
-
- spec/cassettes/DeskApi_Resource_Page/_find/has_an_alias_by_id.yml
|
305
|
-
- spec/cassettes/DeskApi_Resource_Page/_find/loads_the_requested_resource.yml
|
306
|
-
- spec/cassettes/DeskApi_Resource_Page/_page/keeps_the_resource_as_loaded.yml
|
307
|
-
- spec/cassettes/DeskApi_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml
|
308
|
-
- spec/cassettes/DeskApi_Resource_Page/_page/sets_the_resource_to_not_loaded.yml
|
309
235
|
- spec/desk_api/client_spec.rb
|
310
236
|
- spec/desk_api/configuration_spec.rb
|
311
237
|
- spec/desk_api/default_spec.rb
|
312
238
|
- spec/desk_api/error_spec.rb
|
313
239
|
- spec/desk_api/rate_limit_spec.rb
|
314
240
|
- spec/desk_api/request/retry_spec.rb
|
315
|
-
- spec/desk_api/resource/case_spec.rb
|
316
|
-
- spec/desk_api/resource/page_spec.rb
|
317
241
|
- spec/desk_api/resource_spec.rb
|
318
242
|
- spec/desk_api_spec.rb
|
319
243
|
- spec/spec_helper.rb
|
@@ -342,15 +266,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
342
266
|
version: '0'
|
343
267
|
requirements: []
|
344
268
|
rubyforge_project:
|
345
|
-
rubygems_version: 2.0.
|
269
|
+
rubygems_version: 2.0.6
|
346
270
|
signing_key:
|
347
271
|
specification_version: 4
|
348
272
|
summary: A lightweight, flexible wrapper for the desk.com REST API.
|
349
273
|
test_files:
|
350
|
-
- spec/cassettes/DeskApi_Client/_delete/deletes_a_resource.yml
|
351
|
-
- spec/cassettes/DeskApi_Client/_get/fetches_resources.yml
|
352
|
-
- spec/cassettes/DeskApi_Client/_patch/updates_a_resource.yml
|
353
|
-
- spec/cassettes/DeskApi_Client/_post/creates_a_resource.yml
|
354
274
|
- spec/cassettes/DeskApi_Client/using_Basic_Authentication/_delete/deletes_a_resource.yml
|
355
275
|
- spec/cassettes/DeskApi_Client/using_Basic_Authentication/_get/fetches_resources.yml
|
356
276
|
- spec/cassettes/DeskApi_Client/using_Basic_Authentication/_patch/updates_a_resource.yml
|
@@ -364,30 +284,32 @@ test_files:
|
|
364
284
|
- spec/cassettes/DeskApi_Error/on_validation_error/allows_access_to_error_hash.yml
|
365
285
|
- spec/cassettes/DeskApi_Resource/_by_url/finds_resources_by_url.yml
|
366
286
|
- spec/cassettes/DeskApi_Resource/_create/creates_a_new_topic.yml
|
287
|
+
- spec/cassettes/DeskApi_Resource/_create/throws_an_error_creating_a_user.yml
|
367
288
|
- spec/cassettes/DeskApi_Resource/_delete/deletes_a_resource.yml
|
368
289
|
- spec/cassettes/DeskApi_Resource/_delete/throws_an_error_deleting_a_non_deletalbe_resource.yml
|
369
290
|
- spec/cassettes/DeskApi_Resource/_exec_/can_be_forced_to_reload.yml
|
370
291
|
- spec/cassettes/DeskApi_Resource/_exec_/loads_the_current_resource.yml
|
292
|
+
- spec/cassettes/DeskApi_Resource/_find/has_an_alias_by_id.yml
|
293
|
+
- spec/cassettes/DeskApi_Resource/_find/loads_the_requested_resource.yml
|
294
|
+
- spec/cassettes/DeskApi_Resource/_get_linked_resource/returns_linked_resources.yml
|
295
|
+
- spec/cassettes/DeskApi_Resource/_get_linked_resource/returns_nil_if_link_is_nil.yml
|
296
|
+
- spec/cassettes/DeskApi_Resource/_get_linked_resource/saves_the_linked_resource_instead_of_the_url.yml
|
371
297
|
- spec/cassettes/DeskApi_Resource/_method_missing/loads_the_resource_to_find_a_suitable_method.yml
|
372
298
|
- spec/cassettes/DeskApi_Resource/_method_missing/raises_an_error_if_method_does_not_exist.yml
|
299
|
+
- spec/cassettes/DeskApi_Resource/_page/keeps_the_resource_as_loaded.yml
|
300
|
+
- spec/cassettes/DeskApi_Resource/_page/returns_the_current_page_and_loads_if_page_not_defined.yml
|
301
|
+
- spec/cassettes/DeskApi_Resource/_page/sets_the_resource_to_not_loaded.yml
|
373
302
|
- spec/cassettes/DeskApi_Resource/_search/allows_searching_on_search_enabled_resources.yml
|
303
|
+
- spec/cassettes/DeskApi_Resource/_search/throws_an_error_if_search_is_not_enabled.yml
|
374
304
|
- spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml
|
375
305
|
- spec/cassettes/DeskApi_Resource/_update/throws_an_error_updating_a_user.yml
|
376
306
|
- spec/cassettes/DeskApi_Resource/_update/updates_a_topic.yml
|
377
|
-
- spec/cassettes/DeskApi_Resource_Case/once_closed/can_not_be_updated.yml
|
378
|
-
- spec/cassettes/DeskApi_Resource_Page/_find/has_an_alias_by_id.yml
|
379
|
-
- spec/cassettes/DeskApi_Resource_Page/_find/loads_the_requested_resource.yml
|
380
|
-
- spec/cassettes/DeskApi_Resource_Page/_page/keeps_the_resource_as_loaded.yml
|
381
|
-
- spec/cassettes/DeskApi_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml
|
382
|
-
- spec/cassettes/DeskApi_Resource_Page/_page/sets_the_resource_to_not_loaded.yml
|
383
307
|
- spec/desk_api/client_spec.rb
|
384
308
|
- spec/desk_api/configuration_spec.rb
|
385
309
|
- spec/desk_api/default_spec.rb
|
386
310
|
- spec/desk_api/error_spec.rb
|
387
311
|
- spec/desk_api/rate_limit_spec.rb
|
388
312
|
- spec/desk_api/request/retry_spec.rb
|
389
|
-
- spec/desk_api/resource/case_spec.rb
|
390
|
-
- spec/desk_api/resource/page_spec.rb
|
391
313
|
- spec/desk_api/resource_spec.rb
|
392
314
|
- spec/desk_api_spec.rb
|
393
315
|
- spec/spec_helper.rb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module DeskApi
|
2
|
-
module Action
|
3
|
-
module Create
|
4
|
-
module ClassMethods
|
5
|
-
def create(client, path, params)
|
6
|
-
self.new(client, client.post(path, params).body)
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
base.extend(ClassMethods)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'desk_api/error/not_embeddable'
|
2
|
-
|
3
|
-
module DeskApi
|
4
|
-
module Action
|
5
|
-
module Embeddable
|
6
|
-
attr_reader :embedded
|
7
|
-
|
8
|
-
def embed(*embedds)
|
9
|
-
# make sure we don't try to embed anything that's not defined
|
10
|
-
# add it to the query
|
11
|
-
self.query_params = { embed: embedds.each{ |embed|
|
12
|
-
unless self.base_class.embeddable?(embed)
|
13
|
-
raise DeskApi::Error::NotEmbeddable.new("`#{embed.to_s}' can not be embedded.")
|
14
|
-
end
|
15
|
-
}.join(',') }
|
16
|
-
# return self
|
17
|
-
self
|
18
|
-
end
|
19
|
-
|
20
|
-
def setup_embedded(embedds)
|
21
|
-
if embedds.entries?
|
22
|
-
@records = embedds['entries'].map do |record|
|
23
|
-
resource(record._links.self['class']).new(client, record, true)
|
24
|
-
end
|
25
|
-
else
|
26
|
-
embedds.each_pair do |key, definition|
|
27
|
-
@_links[key]['resource'] = resource(definition['class']).new @client, definition, true
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
module ClassMethods
|
33
|
-
def embeddable(*embeddables)
|
34
|
-
@embeddables = embeddables
|
35
|
-
end
|
36
|
-
|
37
|
-
def embeddable?(key)
|
38
|
-
(@embeddables || []).include?(key.to_sym)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def self.included(base)
|
43
|
-
base.extend(ClassMethods)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module DeskApi
|
2
|
-
module Action
|
3
|
-
module Field
|
4
|
-
private
|
5
|
-
# Handles the _links part of the HAL response and sets up the associations.
|
6
|
-
# It is used by the client to setup the initial resources like `users`, `cases` and
|
7
|
-
# so on, as well as by the resource object itself for sub resources (`cases.replies`).
|
8
|
-
#
|
9
|
-
# @api private
|
10
|
-
def setup_fields(definition)
|
11
|
-
definition.each_pair do |key, value|
|
12
|
-
next if key[0] == '_'
|
13
|
-
# set the instance variable
|
14
|
-
instance_variable_set(:"@#{key}", value)
|
15
|
-
# create getter
|
16
|
-
(class << self; self; end).send(:define_method, "#{key}") do
|
17
|
-
return @_changed[key] if kind_of?(DeskApi::Action::Update) and @_changed[key]
|
18
|
-
instance_variable_get(:"@#{key}")
|
19
|
-
end
|
20
|
-
# create setter
|
21
|
-
if kind_of?(DeskApi::Action::Update)
|
22
|
-
(class << self; self; end).send(:define_method, "#{key}=") do |value|
|
23
|
-
if instance_variable_get(:"@#{key}") != value
|
24
|
-
@_changed[key] = value
|
25
|
-
end
|
26
|
-
self
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
data/lib/desk_api/action/link.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module DeskApi
|
2
|
-
module Action
|
3
|
-
module Link
|
4
|
-
private
|
5
|
-
attr_accessor :_links
|
6
|
-
# Handles the _links part of the HAL response and sets up the associations.
|
7
|
-
# It is used by the client to setup the initial resources like `users`, `cases` and
|
8
|
-
# so on, as well as by the resource object itself for sub resources (`cases.replies`).
|
9
|
-
#
|
10
|
-
# @api private
|
11
|
-
def setup_links(links)
|
12
|
-
@_links = links
|
13
|
-
@_links.each_pair do |method, definition|
|
14
|
-
(class << self; self; end).send(:define_method, ['first', 'last', 'next', 'previous'].include?(method) ? "#{method}_page" : method) do
|
15
|
-
return nil unless definition
|
16
|
-
# return the stored resource if we already loaded it
|
17
|
-
return @_links[method]['resource'] if @_links[method].key?('resource')
|
18
|
-
# this is a really ugly hack but necessary for sub resources which aren't declared consistently
|
19
|
-
definition['class'] = 'page' if method.pluralize == method
|
20
|
-
# get the client
|
21
|
-
client = self.instance_of?(DeskApi::Client) ? self : @client
|
22
|
-
# create the new resource
|
23
|
-
@_links[method]['resource'] = resource(definition['class']).new client, Hashie::Mash.new({ _links: { self: definition } })
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module DeskApi
|
2
|
-
module Action
|
3
|
-
module Resource
|
4
|
-
private
|
5
|
-
def resource(name)
|
6
|
-
require "desk_api/resource/#{name}"
|
7
|
-
"DeskApi::Resource::#{name.classify}".constantize
|
8
|
-
rescue NameError
|
9
|
-
rescue LoadError
|
10
|
-
DeskApi::Resource
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module DeskApi
|
2
|
-
module Action
|
3
|
-
module Search
|
4
|
-
module ClassMethods
|
5
|
-
def search(client, path)
|
6
|
-
client.send(:resource, 'page').new(client, Hashie::Mash.new({ _links: { self: { href: path }}}))
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.included(base)
|
11
|
-
base.extend(ClassMethods)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module DeskApi
|
2
|
-
module Action
|
3
|
-
module Update
|
4
|
-
def update(params = {})
|
5
|
-
if kind_of?(resource('case')) and status == 'closed'
|
6
|
-
raise DeskApi::Error::NotUpdateable
|
7
|
-
end
|
8
|
-
|
9
|
-
params.each_pair do |key, value|
|
10
|
-
send("#{key}=", value) if respond_to?("#{key}=")
|
11
|
-
end
|
12
|
-
|
13
|
-
setup(client.patch(@_links.self.href, @_changed).body)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|