Sha256: 1b061caa7ac71f3fd8a43663667cd05dbd10f87b90bc7db956377b945917f438

Contents?: true

Size: 850 Bytes

Versions: 2

Compression:

Stored size: 850 Bytes

Contents

# frozen_string_literal: true

require_relative '../reference/deserializer'

module LedgerSync
  module QuickBooksOnline
    class DepositLineDetail
      class Deserializer < QuickBooksOnline::Deserializer
        references_one :Account,
                       hash_attribute: 'AccountRef',
                       deserializer: Reference::Deserializer

        references_one :Class,
                       hash_attribute: 'ClassRef',
                       deserializer: Reference::Deserializer

        attribute(:Entity) do |args = {}|
          hash = args.fetch(:hash)
          value = hash.fetch('Entity', nil)

          unless value.nil?
            Client.ledger_resource_for(
              type: value['type']
            ).new(
              ledger_id: value['value']
            )
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ledger_sync-quickbooks_online-0.2.0 lib/ledger_sync/quickbooks_online/deposit_line_detail/deserializer.rb
ledger_sync-quickbooks_online-0.1.1 lib/ledger_sync/quickbooks_online/deposit_line_detail/deserializer.rb