Sha256: 5aed373822aa715b6ca4e0d50478e62a085a268338468876a8786425028d877a

Contents?: true

Size: 659 Bytes

Versions: 2

Compression:

Stored size: 659 Bytes

Contents

# frozen_string_literal: true

module FriendlyShipping
  module Services
    class UpsFreight
      class ParseShipmentDocument
        REVERSE_DOCUMENT_TYPES = LabelDocumentOptions::DOCUMENT_TYPES.map(&:reverse_each).to_h(&:to_a)

        def self.call(image_data:)
          format_code = image_data.dig("Type", "Code")
          graphic_image_b64 = image_data["GraphicImage"]

          ShipmentDocument.new(
            format: image_data.dig("Format", "Code").downcase.to_sym,
            binary: Base64.decode64(graphic_image_b64),
            document_type: REVERSE_DOCUMENT_TYPES.fetch(format_code)
          )
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
friendly_shipping-0.10.1 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.10.0 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb