Class: FreightKit::DRRQ

Inherits:
Carrier show all
Defined in:
lib/freight_kit/carriers/drrq.rb

Constant Summary collapse

REACTIVE_FREIGHT_CARRIER =
true
JSON_HEADERS =
{
  Accept: 'application/json',
  'Content-Type': 'application/json',
  charset: 'utf-8'
}.freeze

Constants inherited from Carrier

Carrier::BOL_NUMBER_TRACKING_URL_TEMPLATE, Carrier::NUMBERS, Carrier::ORDER_NUMBER_TRACKING_URL_TEMPLATE, Carrier::PICKUP_NUMBER_TRACKING_URL_TEMPLATE, Carrier::PO_NUMBER_TRACKING_URL_TEMPLATE, Carrier::TRACKING_NUMBER_TRACKING_URL_TEMPLATE, Carrier::VALID_BOL_NUMBER_REGEX, Carrier::VALID_ORDER_NUMBER_REGEX, Carrier::VALID_PICKUP_NUMBER_REGEX, Carrier::VALID_PO_NUMBER_REGEX, Carrier::VALID_TRACKING_NUMBER_REGEX

Class Attribute Summary collapse

Attributes inherited from Carrier

#conf, #credentials, #customer_location, #last_request, #rates_with_excessive_length_fees, #tariff, #tmpdir

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Carrier

#available_services, bol_requires_tracking_number?, #cancel_shipment, default_location, #fetch_credential, #find_estimate, #find_locations, find_rates_with_declared_value?, #find_tracking_info, #find_tracking_number_from_pickup_number, implemented?, #initialize, maximum_address_field_length, maximum_height, maximum_weight, minimum_length_for_overlength_fees, #overlength_fee, #scanned_bol, #serviceable_accessorials?, tracking_url_template, #valid_credentials?, valid_number_regex, #validate_packages

Constructor Details

This class inherits a constructor from FreightKit::Carrier

Class Attribute Details

.nameObject (readonly)

Returns the value of attribute name.



32
33
34
# File 'lib/freight_kit/carriers/drrq.rb', line 32

def name
  @name
end

.scacObject (readonly)

Returns the value of attribute scac.



32
33
34
# File 'lib/freight_kit/carriers/drrq.rb', line 32

def scac
  @scac
end

Class Method Details

.overlength_fees_require_tariff?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/freight_kit/carriers/drrq.rb', line 6

def overlength_fees_require_tariff?
  false
end

.pickup_number_is_tracking_number?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/freight_kit/carriers/drrq.rb', line 10

def pickup_number_is_tracking_number?
  true
end

.required_credential_typesObject



14
15
16
# File 'lib/freight_kit/carriers/drrq.rb', line 14

def required_credential_types
  %i[api selenoid website]
end

.requirementsObject



18
19
20
# File 'lib/freight_kit/carriers/drrq.rb', line 18

def requirements
  %i[credentials]
end

Instance Method Details

#bol(tracking_number) ⇒ Object



43
44
45
46
# File 'lib/freight_kit/carriers/drrq.rb', line 43

def bol(tracking_number)
  request = build_document_request(:bol, tracking_number)
  parse_bol_response(commit(request), :bol, tracking_number)
end

#bol_requires_tracking_number?Boolean

Documents

Returns:

  • (Boolean)


39
40
41
# File 'lib/freight_kit/carriers/drrq.rb', line 39

def bol_requires_tracking_number?
  true
end

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

Pickups



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/freight_kit/carriers/drrq.rb', line 54

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:,
  )

  parse_pickup_response(commit(request))
end

#find_rates(shipment:) ⇒ Object

Rates



80
81
82
83
84
85
86
# File 'lib/freight_kit/carriers/drrq.rb', line 80

def find_rates(shipment:)
  # Not necessary
  # validate_packages(packages)

  request = build_rate_request(shipment:)
  parse_rate_response(shipment:, response: commit(request))
end

#pod(tracking_number) ⇒ Object



48
49
50
# File 'lib/freight_kit/carriers/drrq.rb', line 48

def pod(tracking_number)
  parse_pod_response(tracking_number)
end

#valid_tracking_number?(tracking_number) ⇒ Boolean

Tracking

Returns:

  • (Boolean)


90
91
92
# File 'lib/freight_kit/carriers/drrq.rb', line 90

def valid_tracking_number?(tracking_number)
  tracking_number[..2] == 'UAP' && tracking_number.length == 13
end