module DeskLight::Requester

Public Class Methods

download(_url, _authenticate = true) click to toggle source
# File lib/desk_light/requester.rb, line 27
def self.download _url, _authenticate = true
  uri = URI.parse(_url)
  path = uri.path
  path << "?#{uri.query}" if (uri.query || "").strip != ""
  if _authenticate
    consumer = OAuth::Consumer.new(
      DeskLight.config.key,
      DeskLight.config.secret,
      scheme: :header
    )
    access_token = OAuth::AccessToken.from_hash(
      consumer,
      oauth_token: DeskLight.config.api_token,
      oauth_token_secret: DeskLight.config.api_secret
    )
    response = access_token.get(_url)
  else
    http = Net::HTTP.new(uri.host,uri.port)
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
    http.use_ssl = DeskLight.config.uri.scheme == 'https'
    request = Net::HTTP::Get.new(path)
    response = http.request(request)
  end
  if location = response['location']
    return self.download(location,false)
  end
  DeskLight::Response.new(response)
end
get(_path, _params = {}) click to toggle source
# File lib/desk_light/requester.rb, line 8
def self.get _path, _params = {}
  _uri = URI.parse("https://#{DeskLight.config.subdomain}.desk.com" << _path)
  _new_params = CGI.parse(_uri.query || "").merge!(_params)
  _url = "#{_uri.scheme}://#{_uri.host}#{_uri.path}"
  _url << "?#{URI.encode_www_form(_new_params)}" if _new_params.count > 0
  consumer = OAuth::Consumer.new(
    DeskLight.config.key,
    DeskLight.config.secret,
    :scheme => :header
  )
  access_token = OAuth::AccessToken.from_hash(
    consumer,
    :oauth_token => DeskLight.config.api_token,
    :oauth_token_secret => DeskLight.config.api_secret
  )
  DeskLight::Response.new(access_token.get(_url))
end