Class: Peddler::Transport
- Inherits:
-
Object
- Object
- Peddler::Transport
- Defined in:
- lib/peddler/transport.rb
Overview
Our work horse. Runs on top of Net::HTTP.
Constant Summary collapse
- API_HOSTS =
{:us => "secure.amazon.com", :uk => "secure.amazon.co.uk", :de => "secure.amazon.de", :ca => "secure.amazon.ca", :fr => "secure.amazon.fr", :jp => "vendornet.amazon.co.jp" }
- BASE_HEADERS =
{"User-Agent" => "Peddler/#{Peddler::VERSION}", "Content-Type" => "text/xml;charset=utf-8", "Cookie" => "x-main=YvjPkwfntqDKun0QEmVRPcTTZDMe?Tn?; ubid-main=002-8989859-9917520; ubid-tacbus=019-5423258-4241018;x-tacbus=vtm4d53DvX@Sc9LxTnAnxsFL3DorwxJa; ubid-tcmacb=087-8055947-0795529; ubid-ty2kacbus=161-5477122-2773524; session-id=087-178254-5924832;session-id-time=950660664"}
- BASE_PARAMS =
{ "Service" => "MerchantQueryService" }
Instance Attribute Summary collapse
-
#body ⇒ Object
Returns the value of attribute body.
-
#headers ⇒ Object
Returns the value of attribute headers.
-
#password ⇒ Object
writeonly
Sets the attribute password.
-
#path ⇒ Object
Returns the value of attribute path.
-
#query_params ⇒ Object
Returns the value of attribute query_params.
-
#username ⇒ Object
writeonly
Sets the attribute username.
Instance Method Summary collapse
- #clear_request ⇒ Object
- #dump_headers(msg) ⇒ Object
- #execute_request ⇒ Object
- #legacize_request ⇒ Object
- #modernize_request ⇒ Object
- #region=(region) ⇒ Object
-
#request ⇒ Object
Returns request instance.
- #url ⇒ Object
Instance Attribute Details
#body ⇒ Object
Returns the value of attribute body.
25 26 27 |
# File 'lib/peddler/transport.rb', line 25 def body @body end |
#headers ⇒ Object
Returns the value of attribute headers.
25 26 27 |
# File 'lib/peddler/transport.rb', line 25 def headers @headers end |
#password=(value) ⇒ Object (writeonly)
Sets the attribute password
24 25 26 |
# File 'lib/peddler/transport.rb', line 24 def password=(value) @password = value end |
#path ⇒ Object
Returns the value of attribute path.
25 26 27 |
# File 'lib/peddler/transport.rb', line 25 def path @path end |
#query_params ⇒ Object
Returns the value of attribute query_params.
25 26 27 |
# File 'lib/peddler/transport.rb', line 25 def query_params @query_params end |
#username=(value) ⇒ Object (writeonly)
Sets the attribute username
24 25 26 |
# File 'lib/peddler/transport.rb', line 24 def username=(value) @username = value end |
Instance Method Details
#clear_request ⇒ Object
56 57 58 59 |
# File 'lib/peddler/transport.rb', line 56 def clear_request self.headers = BASE_HEADERS.dup self.body = "" end |
#dump_headers(msg) ⇒ Object
87 88 89 90 91 |
# File 'lib/peddler/transport.rb', line 87 def dump_headers(msg) msg.each_header do |key, value| p "#{key}=#{value}" end end |
#execute_request ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/peddler/transport.rb', line 42 def execute_request begin self.conn.start do |http| res = http.request(self.request) case res when Net::HTTPSuccess res.body else raise PeddlerError.new(res.body) end end end end |
#legacize_request ⇒ Object
61 62 63 64 65 |
# File 'lib/peddler/transport.rb', line 61 def legacize_request self.clear_request self.path = "/exec/panama/seller-admin/" self.query_params = {} end |
#modernize_request ⇒ Object
67 68 69 70 71 |
# File 'lib/peddler/transport.rb', line 67 def modernize_request self.clear_request self.path = "/query/" self.query_params = BASE_PARAMS.dup end |
#region=(region) ⇒ Object
73 74 75 76 77 78 79 80 81 |
# File 'lib/peddler/transport.rb', line 73 def region=(region) @conn = nil region = region.to_sym if API_HOSTS.has_key?(region) @region = region else raise PeddlerError.new("Region not recognized") end end |
#request ⇒ Object
Returns request instance
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/peddler/transport.rb', line 28 def request req = request_method.new("#{self.path.gsub(/\/$/, "")}/#{self.query_string}") self.headers.each do |header, value| if header.kind_of? Symbol req[header.to_s.gsub(/_/, "")] = value else req[header] = value end end req.basic_auth(@username, @password) if @username && @password req.body = self.body unless self.body.empty? req end |
#url ⇒ Object
83 84 85 |
# File 'lib/peddler/transport.rb', line 83 def url URI.parse("https://#{self.host}#{self.path.gsub(/\/$/, "")}/#{self.query_string}") end |