Class: Amazon::Ecs
- Inherits:
-
Object
- Object
- Amazon::Ecs
- Defined in:
- lib/amazon/ecs.rb
Defined Under Namespace
Classes: Response
Constant Summary collapse
- VERSION =
'2.5.0'
- SERVICE_URLS =
{ :us => 'http://webservices.amazon.com/onca/xml', :uk => 'http://webservices.amazon.co.uk/onca/xml', :ca => 'http://webservices.amazon.ca/onca/xml', :de => 'http://webservices.amazon.de/onca/xml', :jp => 'http://webservices.amazon.co.jp/onca/xml', :fr => 'http://webservices.amazon.fr/onca/xml', :it => 'http://webservices.amazon.it/onca/xml', :cn => 'http://webservices.amazon.cn/onca/xml', :es => 'http://webservices.amazon.es/onca/xml', :in => 'http://webservices.amazon.in/onca/xml', :br => 'http://webservices.amazon.com.br/onca/xml', :mx => 'http://webservices.amazon.com.mx/onca/xml' }
- OPENSSL_DIGEST_SUPPORT =
OpenSSL::Digest.constants.include?( 'SHA256' ) || OpenSSL::Digest.constants.include?( :SHA256 )
- OPENSSL_DIGEST =
OpenSSL::Digest.new( 'sha256' )
- @@options =
{ :version => "2013-08-01", :service => "AWSECommerceService" }
- @@debug =
ENV['DEBUG_AMAZON_ECS'] || false
Class Method Summary collapse
-
.browse_node_lookup(browse_node_id, opts = {}) ⇒ Object
Browse node lookup by node ID.
- .configure {|@@options| ... } ⇒ Object
-
.debug ⇒ Object
Get debug flag.
-
.debug=(dbg) ⇒ Object
Set debug flag to true or false.
-
.item_lookup(item_id, opts = {}) ⇒ Object
Search an item by ASIN no.
-
.item_search(terms, opts = {}) ⇒ Object
Search amazon items with search terms.
-
.options ⇒ Object
Default search options.
-
.options=(opts) ⇒ Object
Set default search options.
-
.send_request(opts) ⇒ Object
Generic send request to ECS REST service.
-
.similarity_lookup(item_id, opts = {}) ⇒ Object
Similarity lookup by item ID.
- .validate_request(opts) ⇒ Object
Class Method Details
.browse_node_lookup(browse_node_id, opts = {}) ⇒ Object
Browse node lookup by node ID.
114 115 116 117 118 119 |
# File 'lib/amazon/ecs.rb', line 114 def self.browse_node_lookup(browse_node_id, opts = {}) opts[:operation] = 'BrowseNodeLookup' opts[:browse_node_id] = browse_node_id self.send_request(opts) end |
.configure {|@@options| ... } ⇒ Object
84 85 86 87 |
# File 'lib/amazon/ecs.rb', line 84 def self.configure(&proc) raise ArgumentError, "Block is required." unless block_given? yield @@options end |
.debug ⇒ Object
Get debug flag.
75 76 77 |
# File 'lib/amazon/ecs.rb', line 75 def self.debug @@debug end |
.debug=(dbg) ⇒ Object
Set debug flag to true or false.
80 81 82 |
# File 'lib/amazon/ecs.rb', line 80 def self.debug=(dbg) @@debug = dbg end |
.item_lookup(item_id, opts = {}) ⇒ Object
Search an item by ASIN no.
106 107 108 109 110 111 |
# File 'lib/amazon/ecs.rb', line 106 def self.item_lookup(item_id, opts = {}) opts[:operation] = 'ItemLookup' opts[:item_id] = item_id self.send_request(opts) end |
.item_search(terms, opts = {}) ⇒ Object
Search amazon items with search terms. Default search index option is ‘Books’. For other search type other than keywords, please specify :type => [search type param name].
91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/amazon/ecs.rb', line 91 def self.item_search(terms, opts = {}) opts[:operation] = 'ItemSearch' opts[:search_index] = opts[:search_index] || 'Books' type = opts.delete(:type) if type opts[type.to_sym] = terms else opts[:keywords] = terms end self.send_request(opts) end |
.options ⇒ Object
Default search options
65 66 67 |
# File 'lib/amazon/ecs.rb', line 65 def self. @@options end |
.options=(opts) ⇒ Object
Set default search options
70 71 72 |
# File 'lib/amazon/ecs.rb', line 70 def self.(opts) @@options = opts end |
.send_request(opts) ⇒ Object
Generic send request to ECS REST service. You have to specify the :operation parameter.
130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/amazon/ecs.rb', line 130 def self.send_request(opts) opts = self..merge(opts) if self. # Include other required options opts[:timestamp] = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ") request_url = prepare_url(opts) log("Request URL: #{request_url}") res = Net::HTTP.get_response(URI::parse(request_url)) log("Response:\n#{res.body}\n\n") ecs_res = Response.new(res.body) unless res.kind_of? Net::HTTPSuccess err_msg = "HTTP Response: #{res.code} #{res.}" err_msg += " - #{ecs_res.error}" if ecs_res.error raise Amazon::RequestError, err_msg end ecs_res end |
.similarity_lookup(item_id, opts = {}) ⇒ Object
Similarity lookup by item ID.
122 123 124 125 126 127 |
# File 'lib/amazon/ecs.rb', line 122 def self.similarity_lookup(item_id, opts = {}) opts[:operation] = 'SimilarityLookup' opts[:item_id] = item_id self.send_request(opts) end |
.validate_request(opts) ⇒ Object
151 152 153 |
# File 'lib/amazon/ecs.rb', line 151 def self.validate_request(opts) raise Amazon::RequestError, "" if opts[:associate_tag] end |