Sha256: 313c120f95baf10ab19555762bc00fa6ddb642ad8b797576aff43ed18f9684ed

Contents?: true

Size: 878 Bytes

Versions: 3

Compression:

Stored size: 878 Bytes

Contents

# frozen_string_literal: true

module LedgerSync
  module QuickBooksOnline
    module Serialization
      module Type
        class SerializeTransactionReferenceType < LedgerSync::Type::Value
          def cast_value(args = {})
            value = args.fetch(:value)
            return if value.nil?

            raise "List expected.  Given: #{value.class.name}" unless value.is_a?(Array)

            unless value.all?(LedgerSync::Resource)
              raise "Resources expected.  Given: #{value.map { |i| i.class.name }.join(', ')}"
            end

            value.map do |resource|
              {
                'TxnId' => resource.ledger_id,
                'TxnType' => Client.ledger_resource_type_for(
                  resource_class: resource.class
                ).classify
              }
            end
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ledger_sync-quickbooks_online-2.0.0 lib/ledger_sync/quickbooks_online/serialization/type/serialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-1.0.1 lib/ledger_sync/quickbooks_online/serialization/type/serialize_transaction_reference_type.rb
ledger_sync-quickbooks_online-1.0.0 lib/ledger_sync/quickbooks_online/serialization/type/serialize_transaction_reference_type.rb