Module: UspsCall
- Defined in:
- lib/usps_ruby/web_interface/usps_call.rb
Class Method Summary collapse
- .parse_xml_request(xml) ⇒ Object
-
.response(tracking_number, usps_id, usps_password) ⇒ Object
This method gets called by main class DHLMemnosyne.
- .use_ssl?(uri) ⇒ Boolean
- .usps_request(tracking_number, usps_id, usps_password) ⇒ Object
Class Method Details
.parse_xml_request(xml) ⇒ Object
35 36 37 |
# File 'lib/usps_ruby/web_interface/usps_call.rb', line 35 def self.parse_xml_request(xml) return xml.to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XML | Nokogiri::XML::Node::SaveOptions::NO_DECLARATION).strip.gsub("\"","\'").gsub(" ","%20") end |
.response(tracking_number, usps_id, usps_password) ⇒ Object
This method gets called by main class DHLMemnosyne. It makes actual http request to get the shipment details.
9 10 11 12 13 14 15 |
# File 'lib/usps_ruby/web_interface/usps_call.rb', line 9 def self.response(tracking_number,usps_id,usps_password) uri = URI.parse 'production.shippingapis.com' http = Net::HTTP.new uri.host, uri.port http.use_ssl, http.verify_mode = use_ssl?(uri) request = usps_request(tracking_number,usps_id,usps_password) return Net::HTTP.get(uri.path, request) end |
.use_ssl?(uri) ⇒ Boolean
30 31 32 33 |
# File 'lib/usps_ruby/web_interface/usps_call.rb', line 30 def self.use_ssl?(uri) uri.port == 443 ? (return true, OpenSSL::SSL::VERIFY_NONE) : (return false, OpenSSL::SSL::VERIFY_NONE) end |
.usps_request(tracking_number, usps_id, usps_password) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/usps_ruby/web_interface/usps_call.rb', line 17 def self.usps_request(tracking_number,usps_id,usps_password) require 'rubygems' require 'nokogiri' method = "/ShippingAPI.dll?API=TrackV2&XML=" xml_request = Nokogiri::XML::Builder.new do |xml| xml.TrackFieldRequest('USERID' => usps_id, 'PASSWORD' => usps_password) { xml.TrackID('ID' => tracking_number){ } } end method + parse_xml_request(xml_request) end |