class EdeskyClient

Constants

BOARD_QUERY_DEFAULTS
CLIENT_DEFAULTS
DOC_QUERY_DEFAULTS

Public Class Methods

new(options = {}) click to toggle source
# File lib/edesky_client.rb, line 36
def initialize(options = {})
  CLIENT_DEFAULTS.merge(options).each do |option, value|
    instance_variable_set("@#{option}", value)
  end
end

Public Instance Methods

query_dashboards(options = {}) click to toggle source
# File lib/edesky_client.rb, line 46
def query_dashboards(options = {})
  fetch('dashboards', BOARD_QUERY_DEFAULTS.merge(options))
end
query_documents(options = {}) click to toggle source
# File lib/edesky_client.rb, line 42
def query_documents(options = {})
  fetch('documents', DOC_QUERY_DEFAULTS.merge(options))
end

Private Instance Methods

fetch(type, params) click to toggle source
# File lib/edesky_client.rb, line 52
def fetch(type, params)
  params['api_key'] = @api_key
  uri = URI(URI.join(@endpoint_url, type))
  uri.query = URI.encode_www_form(params)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Get.new(uri.request_uri)
  response = http.request(request)
  # TODO(aufi): raise error on non-200 HTTP code
  XmlSimple.xml_in(response.body, :'ForceArray' => true)
end