desk_api 0.1.0 → 0.1.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 +4 -4
- data/README.md +49 -34
- data/config.rb +1 -1
- data/desk_api.gemspec +3 -3
- data/lib/desk.rb +1 -35
- data/lib/desk_api.rb +35 -0
- data/lib/{desk → desk_api}/action/create.rb +1 -1
- data/lib/{desk → desk_api}/action/delete.rb +1 -1
- data/lib/{desk → desk_api}/action/embedded.rb +1 -1
- data/lib/{desk → desk_api}/action/field.rb +3 -3
- data/lib/{desk → desk_api}/action/link.rb +2 -2
- data/lib/desk_api/action/resource.rb +14 -0
- data/lib/{desk → desk_api}/action/search.rb +1 -1
- data/lib/{desk → desk_api}/action/update.rb +2 -2
- data/lib/{desk → desk_api}/client.rb +15 -15
- data/lib/{desk → desk_api}/configuration.rb +13 -13
- data/lib/{desk → desk_api}/default.rb +5 -5
- data/lib/{desk → desk_api}/error.rb +5 -5
- data/lib/{desk → desk_api}/error/bad_gateway.rb +3 -3
- data/lib/{desk → desk_api}/error/bad_request.rb +3 -3
- data/lib/{desk → desk_api}/error/client_error.rb +3 -3
- data/lib/{desk → desk_api}/error/configuration_error.rb +2 -2
- data/lib/{desk → desk_api}/error/conflict.rb +3 -3
- data/lib/{desk → desk_api}/error/forbidden.rb +3 -3
- data/lib/{desk → desk_api}/error/gateway_timeout.rb +3 -3
- data/lib/desk_api/error/internal_server_error.rb +10 -0
- data/lib/{desk → desk_api}/error/method_not_allowed.rb +3 -3
- data/lib/{desk → desk_api}/error/method_not_supported.rb +3 -3
- data/lib/{desk → desk_api}/error/not_acceptable.rb +3 -3
- data/lib/{desk → desk_api}/error/not_found.rb +3 -3
- data/lib/desk_api/error/parse_error.rb +9 -0
- data/lib/desk_api/error/parser_error.rb +9 -0
- data/lib/{desk → desk_api}/error/server_error.rb +3 -3
- data/lib/desk_api/error/service_unavailable.rb +10 -0
- data/lib/{desk → desk_api}/error/too_many_requests.rb +3 -3
- data/lib/{desk → desk_api}/error/unauthorized.rb +3 -3
- data/lib/{desk → desk_api}/error/unprocessable_entity.rb +3 -3
- data/lib/{desk → desk_api}/error/unsupported_media_type.rb +3 -3
- data/lib/{desk → desk_api}/rate_limit.rb +1 -1
- data/lib/{desk → desk_api}/request/retry.rb +2 -2
- data/lib/{desk → desk_api}/resource.rb +16 -16
- data/lib/desk_api/resource/article.rb +10 -0
- data/lib/desk_api/resource/article_translation.rb +8 -0
- data/lib/desk_api/resource/attachment.rb +8 -0
- data/lib/desk_api/resource/case.rb +9 -0
- data/lib/desk_api/resource/company.rb +8 -0
- data/lib/desk_api/resource/customer.rb +9 -0
- data/lib/desk_api/resource/integration_url.rb +9 -0
- data/lib/desk_api/resource/job.rb +7 -0
- data/lib/desk_api/resource/label.rb +9 -0
- data/lib/desk_api/resource/macro.rb +9 -0
- data/lib/desk_api/resource/macro_action.rb +7 -0
- data/lib/desk_api/resource/note.rb +7 -0
- data/lib/{desk → desk_api}/resource/page.rb +5 -5
- data/lib/desk_api/resource/reply.rb +8 -0
- data/lib/desk_api/resource/topic.rb +9 -0
- data/lib/desk_api/resource/topic_translation.rb +9 -0
- data/lib/desk_api/resource/user_preference.rb +7 -0
- data/lib/{desk → desk_api}/resources.json +0 -0
- data/lib/desk_api/response/raise_error.rb +34 -0
- data/lib/desk_api/version.rb +3 -0
- data/spec/cassettes/{Desk_Client → DeskApi_Client}/_delete/deletes_a_resource.yml +5 -5
- data/spec/cassettes/{Desk_Client → DeskApi_Client}/_get/fetches_resources.yml +5 -5
- data/spec/cassettes/{Desk_Client → DeskApi_Client}/_patch/updates_a_resource.yml +6 -6
- data/spec/cassettes/{Desk_Client → DeskApi_Client}/_post/creates_a_resource.yml +8 -8
- data/spec/cassettes/{Desk_Error → DeskApi_Error}/_from_response/can_be_created_from_a_faraday_response.yml +5 -5
- data/spec/cassettes/{Desk_Error → DeskApi_Error}/_from_response/uses_the_body_message_if_present.yml +5 -5
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_by_url/finds_resources_by_url.yml +7 -7
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_create/creates_a_new_topic.yml +8 -8
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_delete/deletes_a_resource.yml +25 -26
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_delete/throws_an_error_deleting_a_non_deletalbe_resource.yml +6 -6
- data/spec/cassettes/{Desk_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml → DeskApi_Resource/_exec_/can_be_forced_to_reload.yml} +6 -6
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_exec_/loads_the_current_resource.yml +7 -7
- data/spec/cassettes/{Desk_Resource/_exec_/can_be_forced_to_reload.yml → DeskApi_Resource/_method_missing/loads_the_resource_to_find_a_suitable_method.yml} +6 -6
- data/spec/cassettes/{Desk_Resource/_method_missing/loads_the_resource_to_find_a_suitable_method.yml → DeskApi_Resource/_method_missing/raises_an_error_if_method_does_not_exist.yml} +7 -7
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_search/allows_searching_on_search_enabled_resources.yml +5 -5
- data/spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml +116 -0
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_update/throws_an_error_updating_a_user.yml +5 -5
- data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_update/updates_a_topic.yml +18 -20
- data/spec/cassettes/{Desk_Resource_Page → DeskApi_Resource_Page}/_by_id/loads_the_requested_resource.yml +5 -5
- data/spec/cassettes/{Desk_Resource_Page → DeskApi_Resource_Page}/_page/keeps_the_resource_as_loaded.yml +5 -5
- data/spec/cassettes/{Desk_Resource/_method_missing/raises_an_error_if_method_does_not_exist.yml → DeskApi_Resource_Page/_page/returns_the_current_page_and_loads_if_page_not_defined.yml} +6 -6
- data/spec/cassettes/{Desk_Resource_Page → DeskApi_Resource_Page}/_page/sets_the_resource_to_not_loaded.yml +5 -5
- data/spec/{desk → desk_api}/client_spec.rb +14 -14
- data/spec/{desk → desk_api}/configuration_spec.rb +23 -23
- data/spec/{desk → desk_api}/default_spec.rb +5 -5
- data/spec/{desk → desk_api}/error_spec.rb +4 -4
- data/spec/{desk → desk_api}/rate_limit_spec.rb +7 -7
- data/spec/{desk → desk_api}/request/retry_spec.rb +3 -3
- data/spec/{desk → desk_api}/resource_spec.rb +17 -10
- data/spec/{desk → desk_api}/resources/page_spec.rb +5 -5
- data/spec/{desk_spec.rb → desk_api_spec.rb} +10 -10
- data/spec/spec_helper.rb +1 -1
- metadata +121 -118
- data/lib/desk/action/resource.rb +0 -14
- data/lib/desk/error/internal_server_error.rb +0 -10
- data/lib/desk/error/parse_error.rb +0 -9
- data/lib/desk/error/parser_error.rb +0 -9
- data/lib/desk/error/service_unavailable.rb +0 -10
- data/lib/desk/resource/article.rb +0 -10
- data/lib/desk/resource/article_translation.rb +0 -8
- data/lib/desk/resource/attachment.rb +0 -8
- data/lib/desk/resource/case.rb +0 -9
- data/lib/desk/resource/company.rb +0 -8
- data/lib/desk/resource/customer.rb +0 -9
- data/lib/desk/resource/integration_url.rb +0 -9
- data/lib/desk/resource/job.rb +0 -7
- data/lib/desk/resource/label.rb +0 -9
- data/lib/desk/resource/macro.rb +0 -9
- data/lib/desk/resource/macro_action.rb +0 -7
- data/lib/desk/resource/note.rb +0 -7
- data/lib/desk/resource/reply.rb +0 -8
- data/lib/desk/resource/topic.rb +0 -9
- data/lib/desk/resource/topic_translation.rb +0 -9
- data/lib/desk/resource/user_preference.rb +0 -7
- data/lib/desk/response/raise_error.rb +0 -34
- data/lib/desk/version.rb +0 -3
@@ -23,9 +23,9 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json; charset=utf-8
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 19 Aug 2013 23:51:33 GMT
|
27
27
|
ETag:
|
28
|
-
- '"
|
28
|
+
- '"40a205aec2cd1a68c9f59d5bc0043fe1"'
|
29
29
|
Status:
|
30
30
|
- 200 OK
|
31
31
|
Vary:
|
@@ -37,31 +37,29 @@ http_interactions:
|
|
37
37
|
X-Rate-Limit-Limit:
|
38
38
|
- '60'
|
39
39
|
X-Rate-Limit-Remaining:
|
40
|
-
- '
|
40
|
+
- '51'
|
41
41
|
X-Rate-Limit-Reset:
|
42
42
|
- '27'
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
44
|
+
- 14315fed191397832541c7f472e296f6
|
45
45
|
Content-Length:
|
46
|
-
- '
|
46
|
+
- '1529'
|
47
47
|
Connection:
|
48
48
|
- keep-alive
|
49
49
|
body:
|
50
50
|
encoding: UTF-8
|
51
|
-
string: '{"total_entries":
|
52
|
-
English","description":"
|
53
|
-
|
54
|
-
new topic","description":null,"position":3,"allow_questions":true,"in_support_center":null,"created_at":"2013-08-
|
55
|
-
Topic","description":null,"position":4,"allow_questions":true,"in_support_center":null,"created_at":"2013-08-15T21:20:31Z","updated_at":"2013-08-15T21:20:31Z","_links":{"self":{"href":"/api/v2/topics/556907","class":"topic"},"articles":{"href":"/api/v2/topics/556907/articles","class":"article"},"translations":{"href":"/api/v2/topics/556907/translations","class":"topic_translation"}}},{"name":"My
|
56
|
-
new topic","description":null,"position":5,"allow_questions":true,"in_support_center":null,"created_at":"2013-08-15T21:20:32Z","updated_at":"2013-08-15T21:20:32Z","_links":{"self":{"href":"/api/v2/topics/556908","class":"topic"},"articles":{"href":"/api/v2/topics/556908/articles","class":"article"},"translations":{"href":"/api/v2/topics/556908/translations","class":"topic_translation"}}}]}}'
|
51
|
+
string: '{"total_entries":3,"_links":{"self":{"href":"/api/v2/topics?page=1&per_page=50","class":"page"},"first":{"href":"/api/v2/topics?page=1&per_page=50","class":"page"},"last":{"href":"/api/v2/topics?page=1&per_page=50","class":"page"},"previous":null,"next":null},"_embedded":{"entries":[{"name":"Testing
|
52
|
+
English","description":"Another description update.","position":1,"allow_questions":true,"in_support_center":true,"created_at":"2013-04-22T23:46:42Z","updated_at":"2013-08-19T23:51:33Z","_links":{"self":{"href":"/api/v2/topics/498301","class":"topic"},"articles":{"href":"/api/v2/topics/498301/articles","class":"article"},"translations":{"href":"/api/v2/topics/498301/translations","class":"topic_translation"}}},{"name":"Test
|
53
|
+
Updated Topic","description":null,"position":2,"allow_questions":true,"in_support_center":null,"created_at":"2013-08-14T19:37:08Z","updated_at":"2013-08-15T21:26:17Z","_links":{"self":{"href":"/api/v2/topics/556402","class":"topic"},"articles":{"href":"/api/v2/topics/556402/articles","class":"article"},"translations":{"href":"/api/v2/topics/556402/translations","class":"topic_translation"}}},{"name":"My
|
54
|
+
new topic","description":null,"position":3,"allow_questions":true,"in_support_center":null,"created_at":"2013-08-15T21:20:32Z","updated_at":"2013-08-15T21:25:38Z","_links":{"self":{"href":"/api/v2/topics/556908","class":"topic"},"articles":{"href":"/api/v2/topics/556908/articles","class":"article"},"translations":{"href":"/api/v2/topics/556908/translations","class":"topic_translation"}}}]}}'
|
57
55
|
http_version:
|
58
|
-
recorded_at:
|
56
|
+
recorded_at: Mon, 19 Aug 2013 23:51:33 GMT
|
59
57
|
- request:
|
60
58
|
method: patch
|
61
59
|
uri: https://devel.desk.com/api/v2/topics/498301
|
62
60
|
body:
|
63
61
|
encoding: UTF-8
|
64
|
-
string: '{"name":"Updated topic name"}'
|
62
|
+
string: '{"description":"Some new description","name":"Updated topic name"}'
|
65
63
|
headers:
|
66
64
|
Accept:
|
67
65
|
- application/json
|
@@ -79,9 +77,9 @@ http_interactions:
|
|
79
77
|
Content-Type:
|
80
78
|
- application/json; charset=utf-8
|
81
79
|
Date:
|
82
|
-
-
|
80
|
+
- Mon, 19 Aug 2013 23:51:33 GMT
|
83
81
|
ETag:
|
84
|
-
- '"
|
82
|
+
- '"710c8f853c9cb55417e8c1524335a636"'
|
85
83
|
Server:
|
86
84
|
- nginx
|
87
85
|
Status:
|
@@ -97,13 +95,13 @@ http_interactions:
|
|
97
95
|
X-Rate-Limit-Limit:
|
98
96
|
- '60'
|
99
97
|
X-Rate-Limit-Remaining:
|
100
|
-
- '
|
98
|
+
- '50'
|
101
99
|
X-Rate-Limit-Reset:
|
102
100
|
- '27'
|
103
101
|
X-Request-Id:
|
104
|
-
-
|
102
|
+
- cbd8a44730d6855c0cc8a90153370dbe
|
105
103
|
X-Runtime:
|
106
|
-
- '0.
|
104
|
+
- '0.090645'
|
107
105
|
X-UA-Compatible:
|
108
106
|
- IE=Edge,chrome=1
|
109
107
|
Content-Length:
|
@@ -112,7 +110,7 @@ http_interactions:
|
|
112
110
|
- keep-alive
|
113
111
|
body:
|
114
112
|
encoding: UTF-8
|
115
|
-
string: '{"name":"Updated topic name","description":"Some new description","position":1,"allow_questions":true,"in_support_center":true,"created_at":"2013-04-22T23:46:42Z","updated_at":"2013-08-
|
113
|
+
string: '{"name":"Updated topic name","description":"Some new description","position":1,"allow_questions":true,"in_support_center":true,"created_at":"2013-04-22T23:46:42Z","updated_at":"2013-08-19T23:51:33Z","_links":{"self":{"href":"/api/v2/topics/498301","class":"topic"},"articles":{"href":"/api/v2/topics/498301/articles","class":"article"},"translations":{"href":"/api/v2/topics/498301/translations","class":"topic_translation"}}}'
|
116
114
|
http_version:
|
117
|
-
recorded_at:
|
115
|
+
recorded_at: Mon, 19 Aug 2013 23:51:33 GMT
|
118
116
|
recorded_with: VCR 2.5.0
|
@@ -23,7 +23,7 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json; charset=utf-8
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 19 Aug 2013 23:51:31 GMT
|
27
27
|
ETag:
|
28
28
|
- '"cbba64bc7fe9b35611cc745f75671fb6"'
|
29
29
|
Status:
|
@@ -37,11 +37,11 @@ http_interactions:
|
|
37
37
|
X-Rate-Limit-Limit:
|
38
38
|
- '60'
|
39
39
|
X-Rate-Limit-Remaining:
|
40
|
-
- '
|
40
|
+
- '59'
|
41
41
|
X-Rate-Limit-Reset:
|
42
|
-
- '
|
42
|
+
- '29'
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
44
|
+
- e391f97e79ee25cc928aadb97086f3ef
|
45
45
|
Content-Length:
|
46
46
|
- '897'
|
47
47
|
Connection:
|
@@ -50,5 +50,5 @@ http_interactions:
|
|
50
50
|
encoding: UTF-8
|
51
51
|
string: '{"external_id":null,"subject":"Testing the Tank again","priority":5,"locked_until":null,"description":null,"status":"open","type":"email","labels":[],"language":"de","active_at":"2013-05-13T19:20:59Z","created_at":"2013-05-13T18:13:39Z","updated_at":"2013-05-13T18:13:39Z","received_at":null,"custom_fields":{"my_new_custom_field":null,"my_new_number_field":null,"my_new_date_field":null,"my_new_boolean_field":null,"my_new_list_field":null},"_links":{"self":{"href":"/api/v2/cases/3065","class":"case"},"message":{"href":"/api/v2/cases/3065/message","class":"email"},"customer":{"href":"/api/v2/customers/86101780","class":"customer"},"assigned_user":null,"assigned_group":null,"locked_by":null,"replies":{"href":"/api/v2/cases/3065/replies","class":"reply"},"notes":{"href":"/api/v2/cases/3065/notes","class":"note"},"attachments":{"href":"/api/v2/cases/3065/attachments","class":"attachment"}}}'
|
52
52
|
http_version:
|
53
|
-
recorded_at:
|
53
|
+
recorded_at: Mon, 19 Aug 2013 23:51:31 GMT
|
54
54
|
recorded_with: VCR 2.5.0
|
@@ -23,7 +23,7 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json; charset=utf-8
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 19 Aug 2013 23:51:32 GMT
|
27
27
|
ETag:
|
28
28
|
- '"9be8043641e7da379826d5480c34a491"'
|
29
29
|
Status:
|
@@ -37,11 +37,11 @@ http_interactions:
|
|
37
37
|
X-Rate-Limit-Limit:
|
38
38
|
- '60'
|
39
39
|
X-Rate-Limit-Remaining:
|
40
|
-
- '
|
40
|
+
- '57'
|
41
41
|
X-Rate-Limit-Reset:
|
42
|
-
- '
|
42
|
+
- '29'
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
44
|
+
- 8d4c5327c6ad669e96d250837638af84
|
45
45
|
Content-Length:
|
46
46
|
- '48478'
|
47
47
|
Connection:
|
@@ -109,5 +109,5 @@ http_interactions:
|
|
109
109
|
customer create","priority":5,"locked_until":null,"description":null,"status":"open","type":"email","labels":[],"language":"de","active_at":"2013-05-13T19:20:43Z","created_at":"2013-05-13T18:12:07Z","updated_at":"2013-05-13T18:12:07Z","received_at":null,"custom_fields":{"my_new_custom_field":null,"my_new_number_field":null,"my_new_date_field":null,"my_new_boolean_field":null,"my_new_list_field":null},"_links":{"self":{"href":"/api/v2/cases/3064","class":"case"},"message":{"href":"/api/v2/cases/3064/message","class":"email"},"customer":{"href":"/api/v2/customers/86101780","class":"customer"},"assigned_user":null,"assigned_group":null,"locked_by":null,"replies":{"href":"/api/v2/cases/3064/replies","class":"reply"},"notes":{"href":"/api/v2/cases/3064/notes","class":"note"},"attachments":{"href":"/api/v2/cases/3064/attachments","class":"attachment"}}},{"external_id":null,"subject":"Testing
|
110
110
|
the Tank again","priority":5,"locked_until":null,"description":null,"status":"open","type":"email","labels":[],"language":"de","active_at":"2013-05-13T19:20:59Z","created_at":"2013-05-13T18:13:39Z","updated_at":"2013-05-13T18:13:39Z","received_at":null,"custom_fields":{"my_new_custom_field":null,"my_new_number_field":null,"my_new_date_field":null,"my_new_boolean_field":null,"my_new_list_field":null},"_links":{"self":{"href":"/api/v2/cases/3065","class":"case"},"message":{"href":"/api/v2/cases/3065/message","class":"email"},"customer":{"href":"/api/v2/customers/86101780","class":"customer"},"assigned_user":null,"assigned_group":null,"locked_by":null,"replies":{"href":"/api/v2/cases/3065/replies","class":"reply"},"notes":{"href":"/api/v2/cases/3065/notes","class":"note"},"attachments":{"href":"/api/v2/cases/3065/attachments","class":"attachment"}}}]}}'
|
111
111
|
http_version:
|
112
|
-
recorded_at:
|
112
|
+
recorded_at: Mon, 19 Aug 2013 23:51:32 GMT
|
113
113
|
recorded_with: VCR 2.5.0
|
@@ -23,9 +23,9 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json; charset=utf-8
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 19 Aug 2013 23:51:31 GMT
|
27
27
|
ETag:
|
28
|
-
- '"
|
28
|
+
- '"1962df5310e7d2a59db97d5b68e3c95d"'
|
29
29
|
Status:
|
30
30
|
- 200 OK
|
31
31
|
Vary:
|
@@ -37,11 +37,11 @@ http_interactions:
|
|
37
37
|
X-Rate-Limit-Limit:
|
38
38
|
- '60'
|
39
39
|
X-Rate-Limit-Remaining:
|
40
|
-
- '
|
40
|
+
- '58'
|
41
41
|
X-Rate-Limit-Reset:
|
42
42
|
- '29'
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
44
|
+
- 09ecfebbe83d9e29e5c81bf77150925f
|
45
45
|
Content-Length:
|
46
46
|
- '21118'
|
47
47
|
Connection:
|
@@ -307,7 +307,7 @@ http_interactions:
|
|
307
307
|
Latin words, combined with a handful of model sentence structures, to generate
|
308
308
|
Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore
|
309
309
|
always free from repetition, injected humour, or non-characteristic words
|
310
|
-
etc.","body_facebook_auto":true,"keywords":"","position":1,"quickcode":null,"in_support_center":true,"internal_notes":"","publish_at":"2013-08-05T01:13:36Z","created_at":"2013-07-05T15:45:25Z","updated_at":"2013-08-
|
310
|
+
etc.","body_facebook_auto":true,"keywords":"","position":1,"quickcode":null,"in_support_center":true,"internal_notes":"","publish_at":"2013-08-05T01:13:36Z","created_at":"2013-07-05T15:45:25Z","updated_at":"2013-08-15T21:24:28Z","_links":{"self":{"href":"/api/v2/articles/1213277","class":"article"},"topic":{"href":"/api/v2/topics/498301","class":"topic"},"translations":{"href":"/api/v2/articles/1213277/translations","class":"article_translation"}}}]}}'
|
311
311
|
http_version:
|
312
|
-
recorded_at:
|
312
|
+
recorded_at: Mon, 19 Aug 2013 23:51:31 GMT
|
313
313
|
recorded_with: VCR 2.5.0
|
@@ -23,7 +23,7 @@ http_interactions:
|
|
23
23
|
Content-Type:
|
24
24
|
- application/json; charset=utf-8
|
25
25
|
Date:
|
26
|
-
-
|
26
|
+
- Mon, 19 Aug 2013 23:51:32 GMT
|
27
27
|
ETag:
|
28
28
|
- '"9be8043641e7da379826d5480c34a491"'
|
29
29
|
Status:
|
@@ -37,11 +37,11 @@ http_interactions:
|
|
37
37
|
X-Rate-Limit-Limit:
|
38
38
|
- '60'
|
39
39
|
X-Rate-Limit-Remaining:
|
40
|
-
- '
|
40
|
+
- '56'
|
41
41
|
X-Rate-Limit-Reset:
|
42
|
-
- '
|
42
|
+
- '28'
|
43
43
|
X-Request-Id:
|
44
|
-
-
|
44
|
+
- 61aef69178ba110ee1014589af9cbae4
|
45
45
|
Content-Length:
|
46
46
|
- '48478'
|
47
47
|
Connection:
|
@@ -109,5 +109,5 @@ http_interactions:
|
|
109
109
|
customer create","priority":5,"locked_until":null,"description":null,"status":"open","type":"email","labels":[],"language":"de","active_at":"2013-05-13T19:20:43Z","created_at":"2013-05-13T18:12:07Z","updated_at":"2013-05-13T18:12:07Z","received_at":null,"custom_fields":{"my_new_custom_field":null,"my_new_number_field":null,"my_new_date_field":null,"my_new_boolean_field":null,"my_new_list_field":null},"_links":{"self":{"href":"/api/v2/cases/3064","class":"case"},"message":{"href":"/api/v2/cases/3064/message","class":"email"},"customer":{"href":"/api/v2/customers/86101780","class":"customer"},"assigned_user":null,"assigned_group":null,"locked_by":null,"replies":{"href":"/api/v2/cases/3064/replies","class":"reply"},"notes":{"href":"/api/v2/cases/3064/notes","class":"note"},"attachments":{"href":"/api/v2/cases/3064/attachments","class":"attachment"}}},{"external_id":null,"subject":"Testing
|
110
110
|
the Tank again","priority":5,"locked_until":null,"description":null,"status":"open","type":"email","labels":[],"language":"de","active_at":"2013-05-13T19:20:59Z","created_at":"2013-05-13T18:13:39Z","updated_at":"2013-05-13T18:13:39Z","received_at":null,"custom_fields":{"my_new_custom_field":null,"my_new_number_field":null,"my_new_date_field":null,"my_new_boolean_field":null,"my_new_list_field":null},"_links":{"self":{"href":"/api/v2/cases/3065","class":"case"},"message":{"href":"/api/v2/cases/3065/message","class":"email"},"customer":{"href":"/api/v2/customers/86101780","class":"customer"},"assigned_user":null,"assigned_group":null,"locked_by":null,"replies":{"href":"/api/v2/cases/3065/replies","class":"reply"},"notes":{"href":"/api/v2/cases/3065/notes","class":"note"},"attachments":{"href":"/api/v2/cases/3065/attachments","class":"attachment"}}}]}}'
|
111
111
|
http_version:
|
112
|
-
recorded_at:
|
112
|
+
recorded_at: Mon, 19 Aug 2013 23:51:33 GMT
|
113
113
|
recorded_with: VCR 2.5.0
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe DeskApi::Client do
|
4
4
|
subject do
|
5
|
-
@client ||=
|
5
|
+
@client ||= DeskApi::Client.new DeskApi::CONFIG
|
6
6
|
end
|
7
7
|
|
8
8
|
before do
|
@@ -28,21 +28,21 @@ describe Desk::Client do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
after do
|
31
|
-
|
31
|
+
DeskApi.reset!
|
32
32
|
end
|
33
33
|
|
34
34
|
context 'with module configuration' do
|
35
35
|
before do
|
36
|
-
|
37
|
-
|
36
|
+
DeskApi.configure do |config|
|
37
|
+
DeskApi::Configuration.keys.each do |key|
|
38
38
|
config.send("#{key}=", @configuration[key])
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
43
|
it 'inherits the module configuration' do
|
44
|
-
client =
|
45
|
-
|
44
|
+
client = DeskApi::Client.new
|
45
|
+
DeskApi::Configuration.keys.each do |key|
|
46
46
|
client.instance_variable_get(:"@#{key}").should eq(@configuration[key])
|
47
47
|
end
|
48
48
|
end
|
@@ -51,8 +51,8 @@ describe Desk::Client do
|
|
51
51
|
context 'with class configuration' do
|
52
52
|
context "during initialization" do
|
53
53
|
it "overrides the module configuration" do
|
54
|
-
client =
|
55
|
-
|
54
|
+
client = DeskApi::Client.new(@configuration)
|
55
|
+
DeskApi::Configuration.keys.each do |key|
|
56
56
|
client.instance_variable_get(:"@#{key}").should eq(@configuration[key])
|
57
57
|
end
|
58
58
|
end
|
@@ -60,14 +60,14 @@ describe Desk::Client do
|
|
60
60
|
|
61
61
|
context "after initialization" do
|
62
62
|
it "overrides the module configuration after initialization" do
|
63
|
-
client =
|
63
|
+
client = DeskApi::Client.new
|
64
64
|
client.configure do |config|
|
65
65
|
@configuration.each do |key, value|
|
66
66
|
config.send("#{key}=", value)
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
|
70
|
+
DeskApi::Configuration.keys.each do |key|
|
71
71
|
client.instance_variable_get(:"@#{key}").should eq(@configuration[key])
|
72
72
|
end
|
73
73
|
end
|
@@ -104,7 +104,7 @@ describe Desk::Client do
|
|
104
104
|
|
105
105
|
describe '#delete', :vcr do
|
106
106
|
it 'deletes a resource' do
|
107
|
-
subject.delete('/api/v2/topics/
|
107
|
+
subject.delete('/api/v2/topics/558245').status.should eq(204)
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
@@ -122,12 +122,12 @@ describe Desk::Client do
|
|
122
122
|
describe '#request' do
|
123
123
|
it 'catches Faraday errors' do
|
124
124
|
allow(subject).to receive(:connection).and_raise(Faraday::Error::ClientError.new('Oops'))
|
125
|
-
lambda { subject.send(:request, :get, '/path') }.should raise_error(
|
125
|
+
lambda { subject.send(:request, :get, '/path') }.should raise_error(DeskApi::Error::ClientError)
|
126
126
|
end
|
127
127
|
|
128
128
|
it 'catches JSON::ParserError errors' do
|
129
129
|
allow(subject).to receive(:connection).and_raise(JSON::ParserError.new('unexpected token'))
|
130
|
-
lambda { subject.send(:request, :get, '/path') }.should raise_error(
|
130
|
+
lambda { subject.send(:request, :get, '/path') }.should raise_error(DeskApi::Error::ParserError)
|
131
131
|
end
|
132
132
|
end
|
133
133
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe DeskApi::Configuration do
|
4
4
|
context '#keys' do
|
5
5
|
it 'returns an array of configuration keys' do
|
6
|
-
|
6
|
+
DeskApi::Configuration.keys.should eq([
|
7
7
|
:consumer_key,
|
8
8
|
:consumer_secret,
|
9
9
|
:token,
|
@@ -19,23 +19,23 @@ describe Desk::Configuration do
|
|
19
19
|
|
20
20
|
context '#endpoint' do
|
21
21
|
after(:each) do
|
22
|
-
|
22
|
+
DeskApi.reset!
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'returns the endpoint if set' do
|
26
|
-
|
27
|
-
|
26
|
+
DeskApi.endpoint = 'https://devel.desk.com'
|
27
|
+
DeskApi.endpoint.should eq('https://devel.desk.com')
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'returns the subdomain endpoint if subdomain is set' do
|
31
|
-
|
32
|
-
|
31
|
+
DeskApi.subdomain = 'devel'
|
32
|
+
DeskApi.endpoint.should eq('https://devel.desk.com')
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'gives presidence to the endpoint' do
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
DeskApi.subdomain = 'subdomain'
|
37
|
+
DeskApi.endpoint = 'https://endpoint.desk.com'
|
38
|
+
DeskApi.endpoint.should eq('https://endpoint.desk.com')
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -57,20 +57,20 @@ describe Desk::Configuration do
|
|
57
57
|
end
|
58
58
|
|
59
59
|
it 'overrides the module configuration' do
|
60
|
-
client =
|
60
|
+
client = DeskApi::Client.new
|
61
61
|
client.configure do |config|
|
62
62
|
@configuration.each do |key, value|
|
63
63
|
config.send("#{key}=", value)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
|
67
|
+
DeskApi::Configuration.keys.each do |key|
|
68
68
|
client.instance_variable_get(:"@#{key}").should eq(@configuration[key])
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
72
|
it 'throws an exception if credentials are not set' do
|
73
|
-
client =
|
73
|
+
client = DeskApi::Client.new
|
74
74
|
lambda {
|
75
75
|
client.configure do |config|
|
76
76
|
@configuration.each do |key, value|
|
@@ -79,11 +79,11 @@ describe Desk::Configuration do
|
|
79
79
|
config.username = nil
|
80
80
|
config.consumer_key = nil
|
81
81
|
end
|
82
|
-
}.should raise_error(
|
82
|
+
}.should raise_error(DeskApi::Error::ConfigurationError)
|
83
83
|
end
|
84
84
|
|
85
85
|
it 'throws an exception if basic auth credentials are invalid' do
|
86
|
-
client =
|
86
|
+
client = DeskApi::Client.new
|
87
87
|
lambda {
|
88
88
|
client.configure do |config|
|
89
89
|
@configuration.each do |key, value|
|
@@ -92,11 +92,11 @@ describe Desk::Configuration do
|
|
92
92
|
config.username = 1
|
93
93
|
config.consumer_key = nil
|
94
94
|
end
|
95
|
-
}.should raise_error(
|
95
|
+
}.should raise_error(DeskApi::Error::ConfigurationError)
|
96
96
|
end
|
97
97
|
|
98
98
|
it 'throws an exception if oauth credentials are invalid' do
|
99
|
-
client =
|
99
|
+
client = DeskApi::Client.new
|
100
100
|
lambda {
|
101
101
|
client.configure do |config|
|
102
102
|
@configuration.each do |key, value|
|
@@ -105,11 +105,11 @@ describe Desk::Configuration do
|
|
105
105
|
config.username = nil
|
106
106
|
config.consumer_key = 1
|
107
107
|
end
|
108
|
-
}.should raise_error(
|
108
|
+
}.should raise_error(DeskApi::Error::ConfigurationError)
|
109
109
|
end
|
110
110
|
|
111
111
|
it 'throws an exception if endpoint is not a valid url' do
|
112
|
-
client =
|
112
|
+
client = DeskApi::Client.new
|
113
113
|
lambda {
|
114
114
|
client.configure do |config|
|
115
115
|
@configuration.each do |key, value|
|
@@ -117,7 +117,7 @@ describe Desk::Configuration do
|
|
117
117
|
end
|
118
118
|
config.endpoint = 'some_funky_endpoint'
|
119
119
|
end
|
120
|
-
}.should raise_error(
|
120
|
+
}.should raise_error(DeskApi::Error::ConfigurationError)
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
@@ -139,7 +139,7 @@ describe Desk::Configuration do
|
|
139
139
|
end
|
140
140
|
|
141
141
|
it 'resets the configuration to module defaults' do
|
142
|
-
client =
|
142
|
+
client = DeskApi::Client.new
|
143
143
|
client.configure do |config|
|
144
144
|
@configuration.each do |key, value|
|
145
145
|
config.send("#{key}=", value)
|
@@ -147,7 +147,7 @@ describe Desk::Configuration do
|
|
147
147
|
end
|
148
148
|
client.reset!
|
149
149
|
|
150
|
-
|
150
|
+
DeskApi::Configuration.keys.each do |key|
|
151
151
|
client.instance_variable_get(:"@#{key}").should_not eq(@configuration[key])
|
152
152
|
end
|
153
153
|
end
|
@@ -155,7 +155,7 @@ describe Desk::Configuration do
|
|
155
155
|
|
156
156
|
context '#credentials?' do
|
157
157
|
before do
|
158
|
-
@client =
|
158
|
+
@client = DeskApi::Client.new
|
159
159
|
end
|
160
160
|
|
161
161
|
after do
|