lib/amazon/ecs.rb in amazon-ecs-2.1.1 vs lib/amazon/ecs.rb in amazon-ecs-2.2.0
- old
+ new
@@ -30,26 +30,28 @@
module Amazon
class RequestError < StandardError; end
class Ecs
- SERVICE_URLS = {:us => 'http://ecs.amazonaws.com/onca/xml?',
- :uk => 'http://ecs.amazonaws.co.uk/onca/xml?',
- :ca => 'http://ecs.amazonaws.ca/onca/xml?',
- :de => 'http://ecs.amazonaws.de/onca/xml?',
- :jp => 'http://ecs.amazonaws.jp/onca/xml?',
- :fr => 'http://ecs.amazonaws.fr/onca/xml?',
- :it => 'http://ecs.amazonaws.it/onca/xml?'
+ SERVICE_URLS = {
+ :us => 'http://ecs.amazonaws.com/onca/xml',
+ :uk => 'http://ecs.amazonaws.co.uk/onca/xml',
+ :ca => 'http://ecs.amazonaws.ca/onca/xml',
+ :de => 'http://ecs.amazonaws.de/onca/xml',
+ :jp => 'http://ecs.amazonaws.jp/onca/xml',
+ :fr => 'http://ecs.amazonaws.fr/onca/xml',
+ :it => 'http://webservices.amazon.it/onca/xml',
+ :cn => 'http://webservices.amazon.cn/onca/xml'
}
OPENSSL_DIGEST_SUPPORT = OpenSSL::Digest.constants.include?( 'SHA256' ) ||
OpenSSL::Digest.constants.include?( :SHA256 )
OPENSSL_DIGEST = OpenSSL::Digest::Digest.new( 'sha256' ) if OPENSSL_DIGEST_SUPPORT
@@options = {
- :version => "2010-10-01",
+ :version => "2011-08-01",
:service => "AWSECommerceService"
}
@@debug = false
@@ -124,10 +126,14 @@
unless res.kind_of? Net::HTTPSuccess
raise Amazon::RequestError, "HTTP Response: #{res.code} #{res.message}"
end
Response.new(res.body)
end
+
+ def self.validate_request(opts)
+ raise Amazon::RequestError, "" if opts[:associate_tag]
+ end
# Response object returned after a REST call to Amazon service.
class Response
# XML input is in string format
@@ -214,11 +220,11 @@
country = opts.delete(:country)
country = (country.nil?) ? 'us' : country
request_url = SERVICE_URLS[country.to_sym]
raise Amazon::RequestError, "Invalid country '#{country}'" unless request_url
- secret_key = opts.delete(:aWS_secret_key)
+ secret_key = opts.delete(:AWS_secret_key)
request_host = URI.parse(request_url).host
qs = ''
opts = opts.collect do |a,b|
@@ -241,14 +247,12 @@
signature = ''
unless secret_key.nil?
request_to_sign="GET\n#{request_host}\n/onca/xml\n#{qs}"
signature = "&Signature=#{sign_request(request_to_sign, secret_key)}"
- else
- raise Amazon::RequestError, "Must provide aWS_secret_key to sign request"
end
- "#{request_url}#{qs}#{signature}"
+ "#{request_url}?#{qs}#{signature}"
end
def self.url_encode(string)
string.gsub( /([^a-zA-Z0-9_.~-]+)/ ) do
'%' + $1.unpack( 'H2' * $1.bytesize ).join( '%' ).upcase