class FedexWebServices::Api
Constants
- Credentials
Attributes
wiredump[R]
Public Class Methods
new(credentials)
click to toggle source
# File lib/fedex_web_services/api.rb, line 13 def initialize(credentials) @credentials = credentials @wiredump = "" end
Public Instance Methods
close_smart_post(request)
click to toggle source
# File lib/fedex_web_services/api.rb, line 39 def close_smart_post(request) issue_request(Close::ClosePortType.new(service_url), request) end
delete_shipment(request)
click to toggle source
# File lib/fedex_web_services/api.rb, line 32 def delete_shipment(request) issue_request(Ship::ShipPortType.new(service_url), request) end
get_rates(request)
click to toggle source
# File lib/fedex_web_services/api.rb, line 36 def get_rates(request) end
process_shipments(requests)
click to toggle source
# File lib/fedex_web_services/api.rb, line 18 def process_shipments(requests) port = Ship::ShipPortType.new(service_url) first_response = nil requests.map.with_index do |request, ndx| if (ndx == 0) first_response = issue_request(port, request) else request.for_master_tracking_number!(first_response.tracking_number) issue_request(port, request) end end end
service_url()
click to toggle source
# File lib/fedex_web_services/api.rb, line 43 def service_url @service_url ||= (@credentials.environment.to_sym == :production) ? 'https://ws.fedex.com/web-services' : 'https://wsbeta.fedex.com/web-services' end
Private Instance Methods
issue_request(port, request)
click to toggle source
# File lib/fedex_web_services/api.rb, line 50 def issue_request(port, request) port.wiredump_dev = StringIO.new(request_wiredump = "") request.issue_request(port, @credentials).tap do |response| if (response.errors.any?) raise response.errors.map(&:message) * ". " end end rescue Exception => root_exception err = ServiceException.new(root_exception.message) err.details = root_exception.detail.fault.details.validationFailureDetail.message rescue nil raise err ensure @wiredump << request_wiredump if (request_wiredump) end