class Wykop::Operations::Request

Public Class Methods

new(client) click to toggle source

Class created to prepare and parse all requests, includes signing replacing parameters.

# File lib/wykop/operations/request.rb, line 8
def initialize(client)
  @client = client
end

Public Instance Methods

execute(req_url = nil, req_data = nil) click to toggle source
# File lib/wykop/operations/request.rb, line 27
def execute(req_url = nil, req_data = nil)
  sorted_request_body = Hash[req_data.sort_by { |key, value| key }]
  q_body_parsed = []
  sorted_request_body.each do |sval|
    q_body_parsed.push(sval[1])
  end
  request_signature = Digest::MD5.hexdigest(@client.configuration.app_user_secret + req_url + q_body_parsed.join(','))
  obj = HTTParty.post(req_url.to_s, :body => req_data, :headers => {"apisign" => request_signature}).to_json
  JSON.parse(obj)
end
replace_url( p = {} ) click to toggle source
# File lib/wykop/operations/request.rb, line 12
def replace_url( p = {} )
  standard_url = "#{@client.configuration.api_host}/banana/potato/param1/param2/appkey,#{@client.configuration.app_user_key}/userkey,#{@client.user_info['userkey']}"
  if ! p[:param1].nil?
    standard_url = standard_url.gsub(/param1/, p[:param1].to_s)
  else
    standard_url = standard_url.gsub(/\/param1/, '')
  end
  if ! p[:param2].nil?
    standard_url = standard_url.gsub(/param2/, p[:param2].to_s)
  else
    standard_url = standard_url.gsub(/\/param2/, '')
  end
  return standard_url.gsub(/banana/, p[:banana]).gsub(/potato/, p[:potato])
end