class HelpScout::API
Constants
- BASE_URL
Attributes
access_token[RW]
Public Instance Methods
get(path, params = {})
click to toggle source
# File lib/help_scout/api.rb, line 15 def get(path, params = {}) send_request(:get, path, params) end
patch(path, params)
click to toggle source
# File lib/help_scout/api.rb, line 19 def patch(path, params) send_request(:patch, path, params) end
post(path, params)
click to toggle source
# File lib/help_scout/api.rb, line 23 def post(path, params) send_request(:post, path, params) end
put(path, params)
click to toggle source
# File lib/help_scout/api.rb, line 27 def put(path, params) send_request(:put, path, params) end
Private Instance Methods
handle_response(result)
click to toggle source
# File lib/help_scout/api.rb, line 33 def handle_response(result) # rubocop:disable AbcSize, Metrics/MethodLength if (200...300).include? result.status HelpScout::Response.new(result) else case result.status when 400 then raise BadRequest, result.body&.dig('validationErrors') when 401 then raise NotAuthorized, result.body&.dig('error_description') when 404 then raise NotFound, 'Resource Not Found' when 429 then raise ThrottleLimitReached, result.body&.dig('error') else raise InternalError, result.body end end end
new_connection()
click to toggle source
# File lib/help_scout/api.rb, line 47 def new_connection HelpScout::API::Client.new.connection end
send_request(action, path, params)
click to toggle source
# File lib/help_scout/api.rb, line 51 def send_request(action, path, params) response = new_connection.send(action, path, params.compact) if response.status == 401 access_token&.invalidate! response = new_connection.send(action, path, params.compact) end handle_response(response) end