Module: FreightKit::Pickupable

Included in:
CCYQ, FWDA, TQYL, TheGreatInformationFactory
Defined in:
lib/freight_kit/helpers/pickupable.rb

Instance Method Summary collapse

Instance Method Details

#create_pickup(delivery_from:, delivery_to:, dispatcher:, pickup_from:, pickup_to:, scac:, service:, shipment:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/freight_kit/helpers/pickupable.rb', line 5

def create_pickup(
  delivery_from:,
  delivery_to:,
  dispatcher:,
  pickup_from:,
  pickup_to:,
  scac:,
  service:,
  shipment:
)
  request = build_pickup_request(
    delivery_from:,
    delivery_to:,
    dispatcher:,
    pickup_from:,
    pickup_to:,
    scac:,
    service:,
    shipment:,
  )

  begin
    # For SOAP APIs, the :action parameter is required
    response = commit(:pickup, request) if method(:commit).parameters.count == 2
    response ||= commit(request)
  rescue FreightKit::Error => error
    response = PickupResponse.new(request:, response: nil, error:)
  end

  return response if response.is_a?(PickupResponse)

  parse_pickup_response(response)
end