module HelpDeskAPI::Request

Public Class Methods

request(method, endpoint, payload = nil, headers = {}) click to toggle source

Contact API given endpoint and return JSON

# File lib/helpdeskapi/request.rb, line 12
def self.request(method, endpoint, payload = nil, headers = {})
  headers = headers.merge({:cookies => HelpDeskAPI::Authentication.cookies})
  endpoint_response = nil

  case method
    when 'POST'
      @api[endpoint].post(payload, headers) { |response, _, _, _| endpoint_response = response }
    when 'GET'
      endpoint_response = @api[endpoint].get(headers)
    when 'DELETE'
      endpoint_response = @api[endpoint].delete(headers)
    when 'PUT'
      endpoint_response = @api[endpoint].put(payload, headers)
  end

  if responseError?(endpoint_response)
    fail HelpDeskAPI::Exceptions.RequestError, "Error contacting #{endpoint_response.request.url} with HTTP code: #{endpoint_response.code}"
  end

  return endpoint_response
end
responseError?(response) click to toggle source

Returns true if response contains HTTP error code.

# File lib/helpdeskapi/request.rb, line 35
def self.responseError?(response)
  error_codes = [400, 401, 402, 403, 404, 500, 501, 502, 503]
  error_codes.include? response.code
end