class DynamicsHTTPClient

Private: Methods for making HTTP requests to the Dynamics Web API.

Public Class Methods

refresh_token(url="", refresh_token="", client_id="", client_secret="", resource="") click to toggle source

Allows refreshing an oAuth access token.

# File lib/msdynamics.rb, line 97
def self.refresh_token(url="", refresh_token="",
                       client_id="", client_secret="", resource="")
  params = {
    'refresh_token' => refresh_token,
    'client_id'     => client_id,
    'client_secret' => client_secret,
    'grant_type'    => 'refresh_token',
    'resource'      => resource
  }
  uri = URI(url)
  Net::HTTP::post_form(uri, params)
end
request(url="", access_token="") click to toggle source

Sends a HTTP request.(GET)

# File lib/msdynamics.rb, line 77
def self.request(url="", access_token="")
    uri = URI(URI.encode(url))
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = (uri.scheme == "https")
    request = Net::HTTP::Get.new(uri)
    request["Authorization"] = "Bearer #{access_token}"
    response = http.request(request)
    if response.code != '200'
      if response.code == '401'
        # Ughhh! MS Dynamics puts the 401 error messages in the body!
        error_message = response.body
      else
        error_message = JSON.parse(response.body)['error']['message']
      end
      raise RuntimeError.new(error_message)
    end
    response
end