Sha256: 31dc9a6470ae20479816cc5930afb07ebfb9c2348d6530c8e3c40477cf0ec4f9

Contents?: true

Size: 1.18 KB

Versions: 2

Compression:

Stored size: 1.18 KB

Contents

require 'digest/md5'
require 'cgi'
require 'open-uri'

class GoGridClient

  def initialize(server='https://api.gogrid.com/api',
                 apikey='YOUR API KEY',
                 secret='YOUR SHARED SECRET', 
                 format='json',
                 version='1.6')
    @server = server
    @secret = secret
    @default_params = {'format'=>format, 'v'=>version,'api_key' => apikey}
  end    
  
  def getRequestURL(method,params)
    requestURL = @server+'/'+method+'?'
  	call_params = @default_params.merge(params)
  	call_params['sig']=getSignature(@default_params['api_key'],@secret)
  	requestURL = requestURL+encode_params(call_params)
  end
  
  def getSignature(key,secret)
    Digest::MD5.hexdigest(key+secret+"%.0f"%Time.new.to_f)
  end
  
  def sendAPIRequest(method,params={})
    open(getRequestURL(method,params)).read
  end

  def request(method, params={}, version=nil)
    if version
      @default_params['v'] = version
    else
      @default_params['v'] = '1.5'
   end
    request = sendAPIRequest(method, params)
    JSON::parse(request)
  end
  
  def encode_params(params)
    params.map {|k,v| "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}" }.join("&")
  end
    
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
steamcannon-deltacloud-core-0.1.2.1 lib/deltacloud/drivers/gogrid/gogrid_client.rb
deltacloud-core-0.1.2 lib/deltacloud/drivers/gogrid/gogrid_client.rb