Sha256: b853d3eaded78c3fb0511ad762c06adc33e6df2b14779e801e09cbb55e3899c0

Contents?: true

Size: 797 Bytes

Versions: 10

Compression:

Stored size: 797 Bytes

Contents

# frozen_string_literal: true

module LedgerSync
  module QuickBooksOnline
    module Serialization
      module Type
        class DeserializeTransactionReferenceType < LedgerSync::Type::Value
          def cast_value(value:)
            return if value.nil?

            raise "Unknown value type.  Array expected.  Given: #{value.class.name}" unless value.is_a?(Array)
            return if value.empty?

            value.map do |item|
              resource_class = Client.resource_from_ledger_type(type: item['TxnType'])

              raise "Unknown QuickBooks Online resource type: #{item['TxnType']}" if resource_class.blank?

              resource_class.new(
                ledger_id: item['TxnId']
              )
            end
          end
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ledger_sync-quickbooks_online-0.4.0 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.3.1 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.3.0 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.2.6 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.2.5 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.2.4 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.2.2 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.2.1 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.2.0 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-0.1.1 lib/ledger_sync/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb