class FedexWebServices::Request
Attributes
contents[R]
Public Instance Methods
issue_request(port, credentials)
click to toggle source
# File lib/fedex_web_services/request.rb, line 25 def issue_request(port, credentials) Response.new(port.send(remote_method, request_contents(credentials))) end
remote_method()
click to toggle source
# File lib/fedex_web_services/request.rb, line 13 def remote_method raise "remote_method must be implemented by subclasses of Request::Base" end
service_id()
click to toggle source
# File lib/fedex_web_services/request.rb, line 17 def service_id raise "service_id must be implemented by subclasses of Request::Base" end
soap_module()
click to toggle source
# File lib/fedex_web_services/request.rb, line 9 def soap_module raise "soap_module must be implemented by subclasses of Request::Base" end
version()
click to toggle source
# File lib/fedex_web_services/request.rb, line 21 def version raise "version must be implemented by subclasses of Request::Base" end
Protected Instance Methods
request_contents(credentials)
click to toggle source
# File lib/fedex_web_services/request.rb, line 30 def request_contents(credentials) mod = self.soap_module contents = self.contents.dup contents.webAuthenticationDetail = mod::WebAuthenticationDetail.new.tap do |wad| wad.userCredential = mod::WebAuthenticationCredential.new.tap do |wac| wac.key = credentials.key wac.password = credentials.password end end contents.clientDetail = mod::ClientDetail.new.tap do |cd| cd.accountNumber = credentials.account_number cd.meterNumber = credentials.meter_number end contents.version = mod::VersionId.new.tap do |vi| vi.serviceId = service_id vi.major = version vi.intermediate = 0 vi.minor = 0 end contents end