Sha256: d5072d1f624dd07f98a790e76d0617f0fd7e580e0e9f705f86bee43c25fce793

Contents?: true

Size: 735 Bytes

Versions: 7

Compression:

Stored size: 735 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.dig("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

7 entries across 7 versions & 1 rubygems

Version Path
friendly_shipping-0.6.5 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.6.4 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.6.3 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.6.2 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.6.1 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.6.0 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb
friendly_shipping-0.5.3 lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb