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.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +49 -34
  3. data/config.rb +1 -1
  4. data/desk_api.gemspec +3 -3
  5. data/lib/desk.rb +1 -35
  6. data/lib/desk_api.rb +35 -0
  7. data/lib/{desk → desk_api}/action/create.rb +1 -1
  8. data/lib/{desk → desk_api}/action/delete.rb +1 -1
  9. data/lib/{desk → desk_api}/action/embedded.rb +1 -1
  10. data/lib/{desk → desk_api}/action/field.rb +3 -3
  11. data/lib/{desk → desk_api}/action/link.rb +2 -2
  12. data/lib/desk_api/action/resource.rb +14 -0
  13. data/lib/{desk → desk_api}/action/search.rb +1 -1
  14. data/lib/{desk → desk_api}/action/update.rb +2 -2
  15. data/lib/{desk → desk_api}/client.rb +15 -15
  16. data/lib/{desk → desk_api}/configuration.rb +13 -13
  17. data/lib/{desk → desk_api}/default.rb +5 -5
  18. data/lib/{desk → desk_api}/error.rb +5 -5
  19. data/lib/{desk → desk_api}/error/bad_gateway.rb +3 -3
  20. data/lib/{desk → desk_api}/error/bad_request.rb +3 -3
  21. data/lib/{desk → desk_api}/error/client_error.rb +3 -3
  22. data/lib/{desk → desk_api}/error/configuration_error.rb +2 -2
  23. data/lib/{desk → desk_api}/error/conflict.rb +3 -3
  24. data/lib/{desk → desk_api}/error/forbidden.rb +3 -3
  25. data/lib/{desk → desk_api}/error/gateway_timeout.rb +3 -3
  26. data/lib/desk_api/error/internal_server_error.rb +10 -0
  27. data/lib/{desk → desk_api}/error/method_not_allowed.rb +3 -3
  28. data/lib/{desk → desk_api}/error/method_not_supported.rb +3 -3
  29. data/lib/{desk → desk_api}/error/not_acceptable.rb +3 -3
  30. data/lib/{desk → desk_api}/error/not_found.rb +3 -3
  31. data/lib/desk_api/error/parse_error.rb +9 -0
  32. data/lib/desk_api/error/parser_error.rb +9 -0
  33. data/lib/{desk → desk_api}/error/server_error.rb +3 -3
  34. data/lib/desk_api/error/service_unavailable.rb +10 -0
  35. data/lib/{desk → desk_api}/error/too_many_requests.rb +3 -3
  36. data/lib/{desk → desk_api}/error/unauthorized.rb +3 -3
  37. data/lib/{desk → desk_api}/error/unprocessable_entity.rb +3 -3
  38. data/lib/{desk → desk_api}/error/unsupported_media_type.rb +3 -3
  39. data/lib/{desk → desk_api}/rate_limit.rb +1 -1
  40. data/lib/{desk → desk_api}/request/retry.rb +2 -2
  41. data/lib/{desk → desk_api}/resource.rb +16 -16
  42. data/lib/desk_api/resource/article.rb +10 -0
  43. data/lib/desk_api/resource/article_translation.rb +8 -0
  44. data/lib/desk_api/resource/attachment.rb +8 -0
  45. data/lib/desk_api/resource/case.rb +9 -0
  46. data/lib/desk_api/resource/company.rb +8 -0
  47. data/lib/desk_api/resource/customer.rb +9 -0
  48. data/lib/desk_api/resource/integration_url.rb +9 -0
  49. data/lib/desk_api/resource/job.rb +7 -0
  50. data/lib/desk_api/resource/label.rb +9 -0
  51. data/lib/desk_api/resource/macro.rb +9 -0
  52. data/lib/desk_api/resource/macro_action.rb +7 -0
  53. data/lib/desk_api/resource/note.rb +7 -0
  54. data/lib/{desk → desk_api}/resource/page.rb +5 -5
  55. data/lib/desk_api/resource/reply.rb +8 -0
  56. data/lib/desk_api/resource/topic.rb +9 -0
  57. data/lib/desk_api/resource/topic_translation.rb +9 -0
  58. data/lib/desk_api/resource/user_preference.rb +7 -0
  59. data/lib/{desk → desk_api}/resources.json +0 -0
  60. data/lib/desk_api/response/raise_error.rb +34 -0
  61. data/lib/desk_api/version.rb +3 -0
  62. data/spec/cassettes/{Desk_Client → DeskApi_Client}/_delete/deletes_a_resource.yml +5 -5
  63. data/spec/cassettes/{Desk_Client → DeskApi_Client}/_get/fetches_resources.yml +5 -5
  64. data/spec/cassettes/{Desk_Client → DeskApi_Client}/_patch/updates_a_resource.yml +6 -6
  65. data/spec/cassettes/{Desk_Client → DeskApi_Client}/_post/creates_a_resource.yml +8 -8
  66. data/spec/cassettes/{Desk_Error → DeskApi_Error}/_from_response/can_be_created_from_a_faraday_response.yml +5 -5
  67. data/spec/cassettes/{Desk_Error → DeskApi_Error}/_from_response/uses_the_body_message_if_present.yml +5 -5
  68. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_by_url/finds_resources_by_url.yml +7 -7
  69. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_create/creates_a_new_topic.yml +8 -8
  70. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_delete/deletes_a_resource.yml +25 -26
  71. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_delete/throws_an_error_deleting_a_non_deletalbe_resource.yml +6 -6
  72. 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
  73. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_exec_/loads_the_current_resource.yml +7 -7
  74. 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
  75. 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
  76. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_search/allows_searching_on_search_enabled_resources.yml +5 -5
  77. data/spec/cassettes/DeskApi_Resource/_update/can_update_without_a_hash.yml +116 -0
  78. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_update/throws_an_error_updating_a_user.yml +5 -5
  79. data/spec/cassettes/{Desk_Resource → DeskApi_Resource}/_update/updates_a_topic.yml +18 -20
  80. data/spec/cassettes/{Desk_Resource_Page → DeskApi_Resource_Page}/_by_id/loads_the_requested_resource.yml +5 -5
  81. data/spec/cassettes/{Desk_Resource_Page → DeskApi_Resource_Page}/_page/keeps_the_resource_as_loaded.yml +5 -5
  82. 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
  83. data/spec/cassettes/{Desk_Resource_Page → DeskApi_Resource_Page}/_page/sets_the_resource_to_not_loaded.yml +5 -5
  84. data/spec/{desk → desk_api}/client_spec.rb +14 -14
  85. data/spec/{desk → desk_api}/configuration_spec.rb +23 -23
  86. data/spec/{desk → desk_api}/default_spec.rb +5 -5
  87. data/spec/{desk → desk_api}/error_spec.rb +4 -4
  88. data/spec/{desk → desk_api}/rate_limit_spec.rb +7 -7
  89. data/spec/{desk → desk_api}/request/retry_spec.rb +3 -3
  90. data/spec/{desk → desk_api}/resource_spec.rb +17 -10
  91. data/spec/{desk → desk_api}/resources/page_spec.rb +5 -5
  92. data/spec/{desk_spec.rb → desk_api_spec.rb} +10 -10
  93. data/spec/spec_helper.rb +1 -1
  94. metadata +121 -118
  95. data/lib/desk/action/resource.rb +0 -14
  96. data/lib/desk/error/internal_server_error.rb +0 -10
  97. data/lib/desk/error/parse_error.rb +0 -9
  98. data/lib/desk/error/parser_error.rb +0 -9
  99. data/lib/desk/error/service_unavailable.rb +0 -10
  100. data/lib/desk/resource/article.rb +0 -10
  101. data/lib/desk/resource/article_translation.rb +0 -8
  102. data/lib/desk/resource/attachment.rb +0 -8
  103. data/lib/desk/resource/case.rb +0 -9
  104. data/lib/desk/resource/company.rb +0 -8
  105. data/lib/desk/resource/customer.rb +0 -9
  106. data/lib/desk/resource/integration_url.rb +0 -9
  107. data/lib/desk/resource/job.rb +0 -7
  108. data/lib/desk/resource/label.rb +0 -9
  109. data/lib/desk/resource/macro.rb +0 -9
  110. data/lib/desk/resource/macro_action.rb +0 -7
  111. data/lib/desk/resource/note.rb +0 -7
  112. data/lib/desk/resource/reply.rb +0 -8
  113. data/lib/desk/resource/topic.rb +0 -9
  114. data/lib/desk/resource/topic_translation.rb +0 -9
  115. data/lib/desk/resource/user_preference.rb +0 -7
  116. data/lib/desk/response/raise_error.rb +0 -34
  117. data/lib/desk/version.rb +0 -3
@@ -1,14 +0,0 @@
1
- module Desk
2
- module Action
3
- module Resource
4
- protected
5
- def resource(name)
6
- require "desk/resource/#{name}"
7
- "Desk::Resource::#{name.classify}".constantize
8
- rescue NameError
9
- rescue LoadError
10
- Desk::Resource
11
- end
12
- end
13
- end
14
- end
@@ -1,10 +0,0 @@
1
- require 'desk/error/server_error'
2
-
3
- module Desk
4
- class Error
5
- # Raised when Desk returns the HTTP status code 500
6
- class InternalServerError < Desk::Error::ServerError
7
- HTTP_STATUS_CODE = 500
8
- end
9
- end
10
- end
@@ -1,9 +0,0 @@
1
- require 'desk/error'
2
-
3
- module Desk
4
- class Error
5
- # Raised when JSON parsing fails
6
- class ParserError < Desk::Error
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- require 'desk/error'
2
-
3
- module Desk
4
- class Error
5
- # Raised when JSON parsing fails
6
- class ParserError < Desk::Error
7
- end
8
- end
9
- end
@@ -1,10 +0,0 @@
1
- require 'desk/error/server_error'
2
-
3
- module Desk
4
- class Error
5
- # Raised when Desk returns the HTTP status code 503
6
- class ServiceUnavailable < Desk::Error::ServerError
7
- HTTP_STATUS_CODE = 503
8
- end
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Article < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Delete
7
- include Desk::Action::Search
8
- end
9
- end
10
- end
@@ -1,8 +0,0 @@
1
- module Desk
2
- class Resource
3
- class ArticleTranslation < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- end
7
- end
8
- end
@@ -1,8 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Attachment < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Delete
6
- end
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Case < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Search
7
- end
8
- end
9
- end
@@ -1,8 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Company < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- end
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Customer < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Search
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class IntegrationUrl < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Delete
7
- end
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Job < Desk::Resource
4
- include Desk::Action::Create
5
- end
6
- end
7
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Article < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Delete
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Macro < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Delete
7
- end
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- module Desk
2
- class Resource
3
- class MacroAction < Desk::Resource
4
- include Desk::Action::Update
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Note < Desk::Resource
4
- include Desk::Action::Create
5
- end
6
- end
7
- end
@@ -1,8 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Reply < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- end
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class Topic < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Delete
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module Desk
2
- class Resource
3
- class TopicTranslation < Desk::Resource
4
- include Desk::Action::Create
5
- include Desk::Action::Update
6
- include Desk::Action::Delete
7
- end
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- module Desk
2
- class Resource
3
- class UserPreference < Desk::Resource
4
- include Desk::Action::Update
5
- end
6
- end
7
- end
@@ -1,34 +0,0 @@
1
- require 'faraday'
2
- require 'desk/error/bad_gateway'
3
- require 'desk/error/bad_request'
4
- require 'desk/error/conflict'
5
- require 'desk/error/forbidden'
6
- require 'desk/error/gateway_timeout'
7
- require 'desk/error/internal_server_error'
8
- require 'desk/error/method_not_allowed'
9
- require 'desk/error/not_acceptable'
10
- require 'desk/error/not_found'
11
- require 'desk/error/service_unavailable'
12
- require 'desk/error/too_many_requests'
13
- require 'desk/error/unauthorized'
14
- require 'desk/error/unprocessable_entity'
15
- require 'desk/error/unsupported_media_type'
16
-
17
- module Desk
18
- module Response
19
- class RaiseError < Faraday::Response::Middleware
20
- def on_complete(env)
21
- status_code = env[:status].to_i
22
- error_class = @klass.errors[status_code]
23
- raise error_class.from_response(env) if error_class
24
- end
25
-
26
- def initialize(app, klass)
27
- @klass = klass
28
- super(app)
29
- end
30
- end
31
-
32
- Faraday.register_middleware :response, raise_error: lambda { RaiseError}
33
- end
34
- end
data/lib/desk/version.rb DELETED
@@ -1,3 +0,0 @@
1
- module Desk
2
- VERSION = '0.1.0'
3
- end