Module: FedexLabelService

Defined in:
lib/fedex_label_service.rb,
lib/fedex_label_service/version.rb,
lib/fedex_label_service/configuration.rb,
lib/fedex_label_service/ground_message.rb,
lib/fedex_label_service/smartpost_message.rb

Defined Under Namespace

Classes: Configuration, GroundMessage, SmartpostMessage

Constant Summary collapse

VERSION =
'0.5.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject



15
16
17
# File 'lib/fedex_label_service.rb', line 15

def self.configuration
  @configuration ||= Configuration.new
end

Class Method Details

.call(message) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/fedex_label_service.rb', line 41

def self.call(message)
  client = Savon.client(wsdl: FedexLabelService.configuration.wsdl)

  begin
    @response = client.call(:process_shipment, message: message)
  rescue Savon::SOAPFault => error
    puts error.http.inspect
  end

  @response
end

.configure {|configuration| ... } ⇒ Object

Yields:



23
24
25
# File 'lib/fedex_label_service.rb', line 23

def self.configure
  yield(configuration)
end

.message(service, sender_attributes, recipient_attributes) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/fedex_label_service.rb', line 31

def self.message(service, sender_attributes, recipient_attributes)
  if service == 'smartpost'
    message = FedexLabelService::SmartpostMessage.build(sender_attributes, recipient_attributes)
  elsif service == 'ground'
    message = FedexLabelService::GroundMessage.build(sender_attributes, recipient_attributes)
  end

  message
end

.parsed_response(response) ⇒ Object



53
54
55
56
57
58
# File 'lib/fedex_label_service.rb', line 53

def self.parsed_response(response)
  {
    tracking_number: response.body[:process_shipment_reply][:completed_shipment_detail][:completed_package_details][:tracking_ids][:tracking_number],
    label_data:      response.body[:process_shipment_reply][:completed_shipment_detail][:completed_package_details][:label][:parts][:image]
  }
end

.resetObject



19
20
21
# File 'lib/fedex_label_service.rb', line 19

def self.reset
  @configuration = Configuration.new
end

.rootObject



27
28
29
# File 'lib/fedex_label_service.rb', line 27

def self.root
  Pathname.new File.expand_path('..', __dir__)
end