Class: FriendlyShipping::Services::ShipEngineLTL::SerializePackages

Inherits:
Object
  • Object
show all
Defined in:
lib/friendly_shipping/services/ship_engine_ltl/serialize_packages.rb

Class Method Summary collapse

Class Method Details

.call(packages:, options:) ⇒ Object

Parameters:



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
# File 'lib/friendly_shipping/services/ship_engine_ltl/serialize_packages.rb', line 10

def call(packages:, options:)
  packages.flat_map do |package|
    package_options = options.options_for_package(package)
    package.items.map do |item|
      item_options = package_options.options_for_item(item)
      {
        code: item_options.packaging_code,
        freight_class: item_options.freight_class,
        nmfc_code: item_options.nmfc_code,
        description: item.description || "Commodities",
        dimensions: {
          width: item.width.convert_to(:inches).value.ceil,
          height: item.height.convert_to(:inches).value.ceil,
          length: item.length.convert_to(:inches).value.ceil,
          unit: "inches"
        },
        weight: {
          value: item.weight.convert_to(:pounds).value.ceil,
          unit: "pounds"
        },
        quantity: 1, # we don't support this yet
        stackable: item_options.stackable,
        hazardous_materials: item_options.hazardous_materials
      }
    end
  end
end