Sha256: 26eefe6c0d8a544c5534ff34c99358f9be1d46506c2f60f167dd2e61a0f88b8b

Contents?: true

Size: 819 Bytes

Versions: 4

Compression:

Stored size: 819 Bytes

Contents

# frozen_string_literal: true

require 'time'
require 'truelayer/base_model'
require 'truelayer/running_balance'
require 'truelayer/transaction_meta'

module Truelayer
  class Transaction < BaseModel
    attributes :transaction_id, :normalised_provider_transaction_id, :provider_transaction_id,
               :timestamp, :description, :amount, :currency,
               :transaction_type, :transaction_category, :transaction_classification,
               :merchant_name, :running_balance, :meta

    def self.build(json:)
      super.tap do |record|
        record.running_balance = RunningBalance.build(json: (record.running_balance || {}))
        record.meta = TransactionMeta.build(json: (record.meta || {}))
        record.timestamp = Time.parse(record.timestamp) if record.timestamp
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
truelayer-0.1.4 lib/truelayer/transaction.rb
truelayer-0.1.3 lib/truelayer/transaction.rb
truelayer-0.1.2 lib/truelayer/transaction.rb
truelayer-0.1.1 lib/truelayer/transaction.rb