class SpyFu::Request
Constants
- HTTP_HEADER_AUTHENTICATION
- HTTP_HEADER_TIMESTAMP
- URL_API_BASE
Attributes
http_method[RW]
Public Class Methods
new(http_method, endpoint, params, post_data, app_id, secret_key)
click to toggle source
# File lib/spyfu/request.rb, line 14 def initialize(http_method, endpoint, params, post_data, app_id, secret_key) @http_method = http_method @url = URL_API_BASE+endpoint @params = params @post_data = post_data @app_id = app_id @secret_key = secret_key end
Public Instance Methods
message()
click to toggle source
# File lib/spyfu/request.rb, line 49 def message @message ||= [http_method, timestamp, uri.path, parameter_message].join("\n") end
parameter_collection()
click to toggle source
# File lib/spyfu/request.rb, line 64 def parameter_collection @parameter_collection ||= begin collection = params.to_a + post_data.to_a collection.sort end end
parameter_message()
click to toggle source
# File lib/spyfu/request.rb, line 59 def parameter_message return '' if parameter_collection.empty? parameter_collection.map { |x| "#{x[0]}=#{x[1]}" }.join("&") end
query_string()
click to toggle source
# File lib/spyfu/request.rb, line 40 def query_string return '' if params.empty? return '?'+params.map { |x| "#{x[0]}=#{x[1]}" }.join("&") end
request()
click to toggle source
# File lib/spyfu/request.rb, line 23 def request req = Net::HTTP::Get.new(uri.request_uri) # add authentiation goodness to request object req[HTTP_HEADER_TIMESTAMP] = timestamp req[HTTP_HEADER_AUTHENTICATION] = app_id + ":" + signature request = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => true) {|http| http.request(req) } return request end
signature()
click to toggle source
# File lib/spyfu/request.rb, line 53 def signature digest = OpenSSL::Digest.new('sha256') hmac_digest = OpenSSL::HMAC.digest(digest, secret_key, message) Base64.encode64(hmac_digest).strip() end
timestamp()
click to toggle source
# File lib/spyfu/request.rb, line 45 def timestamp @timestamp ||= Time.now.getutc.strftime "%A, %B %d, %Y %I:%M:%S %p" end
uri()
click to toggle source
# File lib/spyfu/request.rb, line 36 def uri @uri ||= URI(url+query_string) end