desk_api 0.1.2 → 0.1.3

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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -1
  3. data/lib/desk_api/action/embeddable.rb +47 -0
  4. data/lib/desk_api/action/update.rb +5 -0
  5. data/lib/desk_api/error/not_embeddable.rb +8 -0
  6. data/lib/desk_api/error/not_updateable.rb +10 -0
  7. data/lib/desk_api/error/unprocessable_entity.rb +1 -0
  8. data/lib/desk_api/error.rb +7 -9
  9. data/lib/desk_api/resource/case.rb +2 -0
  10. data/lib/desk_api/resource/filter.rb +7 -0
  11. data/lib/desk_api/resource/inbound_mailbox.rb +7 -0
  12. data/lib/desk_api/resource/job.rb +2 -0
  13. data/lib/desk_api/resource/page.rb +10 -27
  14. data/lib/desk_api/resource/reply.rb +2 -0
  15. data/lib/desk_api/resource.rb +28 -3
  16. data/lib/desk_api/version.rb +1 -1
  17. data/spec/cassettes/DeskApi_Error/on_validation_error/allows_access_to_error_hash.yml +54 -0
  18. data/spec/cassettes/DeskApi_Resource_Case/once_closed/can_not_be_updated.yml +124 -0
  19. data/spec/cassettes/DeskApi_Resource_Page/{_by_id/loads_the_requested_resource.yml → _find/has_an_alias_by_id.yml} +6 -6
  20. data/spec/cassettes/DeskApi_Resource_Page/_find/loads_the_requested_resource.yml +54 -0
  21. data/spec/desk_api/error_spec.rb +11 -0
  22. data/spec/desk_api/request/retry_spec.rb +9 -3
  23. data/spec/desk_api/resource/case_spec.rb +28 -0
  24. data/spec/desk_api/{resources → resource}/page_spec.rb +9 -5
  25. data/spec/desk_api/resource_spec.rb +68 -0
  26. data/spec/spec_helper.rb +1 -0
  27. data/spec/stubs/case_embed_customer.json +115 -0
  28. data/spec/stubs/cases_embed_assigned_user.json +105 -0
  29. metadata +23 -7
  30. data/lib/desk_api/action/embedded.rb +0 -12
@@ -0,0 +1,105 @@
1
+ {
2
+ "total_entries": 329,
3
+ "_links": {
4
+ "self": {
5
+ "href": "/api/v2/cases?page=1&per_page=1",
6
+ "class": "page"
7
+ },
8
+ "first": {
9
+ "href": "/api/v2/cases?page=1&per_page=1",
10
+ "class": "page"
11
+ },
12
+ "last": {
13
+ "href": "/api/v2/cases?page=329&per_page=1",
14
+ "class": "page"
15
+ },
16
+ "previous": null,
17
+ "next": {
18
+ "href": "/api/v2/cases?page=2&per_page=1",
19
+ "class": "page"
20
+ }
21
+ },
22
+ "_embedded": {
23
+ "entries": [
24
+ {
25
+ "external_id": null,
26
+ "subject": "",
27
+ "priority": 9,
28
+ "locked_until": null,
29
+ "description": "",
30
+ "status": "open",
31
+ "type": "phone",
32
+ "labels": [],
33
+ "language": "en",
34
+ "active_at": "2013-09-07T19:38:58Z",
35
+ "created_at": "2013-05-09T17:02:16Z",
36
+ "updated_at": "2013-09-07T19:39:07Z",
37
+ "received_at": "2013-05-09T17:02:16Z",
38
+ "custom_fields": {
39
+ "my_new_custom_field": "",
40
+ "my_new_number_field": "0",
41
+ "my_new_date_field": "",
42
+ "my_new_boolean_field": "0",
43
+ "my_new_list_field": "Option 1"
44
+ },
45
+ "_links": {
46
+ "self": {
47
+ "href": "/api/v2/cases/3011",
48
+ "class": "case"
49
+ },
50
+ "message": {
51
+ "href": "/api/v2/cases/3011/message",
52
+ "class": "phone"
53
+ },
54
+ "customer": {
55
+ "href": "/api/v2/customers/37823480",
56
+ "class": "customer"
57
+ },
58
+ "assigned_user": {
59
+ "href": "/api/v2/users/16096734",
60
+ "class": "user"
61
+ },
62
+ "assigned_group": {
63
+ "href": "/api/v2/groups/171213",
64
+ "class": "group"
65
+ },
66
+ "locked_by": null,
67
+ "replies": {
68
+ "href": "/api/v2/cases/3011/replies",
69
+ "class": "reply"
70
+ },
71
+ "notes": {
72
+ "href": "/api/v2/cases/3011/notes",
73
+ "class": "note"
74
+ },
75
+ "attachments": {
76
+ "href": "/api/v2/cases/3011/attachments",
77
+ "class": "attachment"
78
+ }
79
+ },
80
+ "_embedded": {
81
+ "assigned_user": {
82
+ "name": "Thomas Stachl",
83
+ "public_name": "Thomas Stachl",
84
+ "email": "tstachl@salesforce.com",
85
+ "level": "siteadmin_billing",
86
+ "_links": {
87
+ "self": {
88
+ "href": "/api/v2/users/16096734",
89
+ "class": "user"
90
+ },
91
+ "preferences": {
92
+ "href": "/api/v2/users/16096734/preferences",
93
+ "class": "user_preference"
94
+ },
95
+ "searches": {
96
+ "href": "/api/v2/users/16096734/searches",
97
+ "class": "search"
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ ]
104
+ }
105
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: desk_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
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-09-03 00:00:00.000000000 Z
11
+ date: 2013-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -216,7 +216,7 @@ files:
216
216
  - lib/desk_api.rb
217
217
  - lib/desk_api/action/create.rb
218
218
  - lib/desk_api/action/delete.rb
219
- - lib/desk_api/action/embedded.rb
219
+ - lib/desk_api/action/embeddable.rb
220
220
  - lib/desk_api/action/field.rb
221
221
  - lib/desk_api/action/link.rb
222
222
  - lib/desk_api/action/resource.rb
@@ -237,7 +237,9 @@ files:
237
237
  - lib/desk_api/error/method_not_allowed.rb
238
238
  - lib/desk_api/error/method_not_supported.rb
239
239
  - lib/desk_api/error/not_acceptable.rb
240
+ - lib/desk_api/error/not_embeddable.rb
240
241
  - lib/desk_api/error/not_found.rb
242
+ - lib/desk_api/error/not_updateable.rb
241
243
  - lib/desk_api/error/parse_error.rb
242
244
  - lib/desk_api/error/parser_error.rb
243
245
  - lib/desk_api/error/server_error.rb
@@ -255,6 +257,8 @@ files:
255
257
  - lib/desk_api/resource/case.rb
256
258
  - lib/desk_api/resource/company.rb
257
259
  - lib/desk_api/resource/customer.rb
260
+ - lib/desk_api/resource/filter.rb
261
+ - lib/desk_api/resource/inbound_mailbox.rb
258
262
  - lib/desk_api/resource/integration_url.rb
259
263
  - lib/desk_api/resource/job.rb
260
264
  - lib/desk_api/resource/label.rb
@@ -283,6 +287,7 @@ files:
283
287
  - spec/cassettes/DeskApi_Client/using_OAuth/_post/creates_a_resource.yml
284
288
  - spec/cassettes/DeskApi_Error/_from_response/can_be_created_from_a_faraday_response.yml
285
289
  - spec/cassettes/DeskApi_Error/_from_response/uses_the_body_message_if_present.yml
290
+ - spec/cassettes/DeskApi_Error/on_validation_error/allows_access_to_error_hash.yml
286
291
  - spec/cassettes/DeskApi_Resource/_by_url/finds_resources_by_url.yml
287
292
  - spec/cassettes/DeskApi_Resource/_create/creates_a_new_topic.yml
288
293
  - spec/cassettes/DeskApi_Resource/_delete/deletes_a_resource.yml
@@ -295,7 +300,9 @@ files:
295
300
  - spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml
296
301
  - spec/cassettes/DeskApi_Resource/_update/throws_an_error_updating_a_user.yml
297
302
  - spec/cassettes/DeskApi_Resource/_update/updates_a_topic.yml
298
- - spec/cassettes/DeskApi_Resource_Page/_by_id/loads_the_requested_resource.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
299
306
  - spec/cassettes/DeskApi_Resource_Page/_page/keeps_the_resource_as_loaded.yml
300
307
  - spec/cassettes/DeskApi_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml
301
308
  - spec/cassettes/DeskApi_Resource_Page/_page/sets_the_resource_to_not_loaded.yml
@@ -305,10 +312,13 @@ files:
305
312
  - spec/desk_api/error_spec.rb
306
313
  - spec/desk_api/rate_limit_spec.rb
307
314
  - spec/desk_api/request/retry_spec.rb
315
+ - spec/desk_api/resource/case_spec.rb
316
+ - spec/desk_api/resource/page_spec.rb
308
317
  - spec/desk_api/resource_spec.rb
309
- - spec/desk_api/resources/page_spec.rb
310
318
  - spec/desk_api_spec.rb
311
319
  - spec/spec_helper.rb
320
+ - spec/stubs/case_embed_customer.json
321
+ - spec/stubs/cases_embed_assigned_user.json
312
322
  homepage: http://github.com/tstachl/desk
313
323
  licenses: []
314
324
  metadata: {}
@@ -351,6 +361,7 @@ test_files:
351
361
  - spec/cassettes/DeskApi_Client/using_OAuth/_post/creates_a_resource.yml
352
362
  - spec/cassettes/DeskApi_Error/_from_response/can_be_created_from_a_faraday_response.yml
353
363
  - spec/cassettes/DeskApi_Error/_from_response/uses_the_body_message_if_present.yml
364
+ - spec/cassettes/DeskApi_Error/on_validation_error/allows_access_to_error_hash.yml
354
365
  - spec/cassettes/DeskApi_Resource/_by_url/finds_resources_by_url.yml
355
366
  - spec/cassettes/DeskApi_Resource/_create/creates_a_new_topic.yml
356
367
  - spec/cassettes/DeskApi_Resource/_delete/deletes_a_resource.yml
@@ -363,7 +374,9 @@ test_files:
363
374
  - spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml
364
375
  - spec/cassettes/DeskApi_Resource/_update/throws_an_error_updating_a_user.yml
365
376
  - spec/cassettes/DeskApi_Resource/_update/updates_a_topic.yml
366
- - spec/cassettes/DeskApi_Resource_Page/_by_id/loads_the_requested_resource.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
367
380
  - spec/cassettes/DeskApi_Resource_Page/_page/keeps_the_resource_as_loaded.yml
368
381
  - spec/cassettes/DeskApi_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml
369
382
  - spec/cassettes/DeskApi_Resource_Page/_page/sets_the_resource_to_not_loaded.yml
@@ -373,8 +386,11 @@ test_files:
373
386
  - spec/desk_api/error_spec.rb
374
387
  - spec/desk_api/rate_limit_spec.rb
375
388
  - spec/desk_api/request/retry_spec.rb
389
+ - spec/desk_api/resource/case_spec.rb
390
+ - spec/desk_api/resource/page_spec.rb
376
391
  - spec/desk_api/resource_spec.rb
377
- - spec/desk_api/resources/page_spec.rb
378
392
  - spec/desk_api_spec.rb
379
393
  - spec/spec_helper.rb
394
+ - spec/stubs/case_embed_customer.json
395
+ - spec/stubs/cases_embed_assigned_user.json
380
396
  has_rdoc:
@@ -1,12 +0,0 @@
1
- module DeskApi
2
- module Action
3
- module Embedded
4
- private
5
- def setup_embedded(entries)
6
- @records = entries.map do |record|
7
- resource(record._links.self['class']).new(client, record, true)
8
- end
9
- end
10
- end
11
- end
12
- end