Sha256: 2630de24a4f83890baacc51b17aa0e296d78880614833638b76883be4675fb11

Contents?: true

Size: 731 Bytes

Versions: 6

Compression:

Stored size: 731 Bytes

Contents

# frozen_string_literal: true

require 'friendly_shipping/services/ups_freight/shipment_document'

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

        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

6 entries across 6 versions & 1 rubygems

Version Path
friendly_shipping-0.8.1 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.8.0 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.7.3 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.7.2 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.7.1 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.7.0 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb