Method: RightAws::SqsInterface#generate_request

Defined in:
lib/sqs/right_sqs_interface.rb

#generate_request(action, params = {}) ⇒ Object

Generates a request hash for the query API



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/sqs/right_sqs_interface.rb', line 78

def generate_request(action, params={})  # :nodoc:
    # Sometimes we need to use queue uri (delete queue etc)
    # In that case we will use Symbol key: 'param[:queue_url]'
  service = params[:queue_url] ? URI(params[:queue_url]).path : '/'
    # remove unset(=optional) and symbolyc keys
  params.each{ |key, value| params.delete(key) if (value.nil? || key.is_a?(Symbol)) }
    # prepare output hash
  service_hash = { "Action"           => action,
                   "Expires"          => (Time.now + REQUEST_TTL).utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
                   "AWSAccessKeyId"   => @aws_access_key_id,
                   "Version"          => API_VERSION }
  service_hash.update(params)
  service_params = signed_service_params(@aws_secret_access_key, service_hash, :get, @params[:server], service)
  request        = Net::HTTP::Get.new("#{AwsUtils::URLencode(service)}?#{service_params}")
    # prepare output hash
  { :request  => request, 
    :server   => @params[:server],
    :port     => @params[:port],
    :protocol => @params[:protocol] }
end