44uk/nis-ruby

View on GitHub
lib/nis/endpoint/account/transfers.rb

Summary

Maintainability
A
1 hr
Test Coverage
module Nis::Endpoint
  module Account::Transfers
    # @param [String] address
    # @param [String] hash
    # @param [String] id
    # @param [Integer] page_size
    # @return [Array <Nis::Struct::TransactionMetaDataPair>]
    # @see https://nemproject.github.io/#requesting-transaction-data-for-an-account
    def account_transfers_incoming(address:, hash: nil, id: nil, page_size: nil)
      request!(:get, '/account/transfers/incoming',
        address: address,
        hash: hash,
        id: id,
        pageSize: page_size
      ) do |res|
        res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
      end
    end

    # @param [String] address
    # @param [String] hash
    # @param [String] id
    # @param [Integer] page_size
    # @return [Array <Nis::Struct::TransactionMetaDataPair>]
    # @see https://nemproject.github.io/#requesting-transaction-data-for-an-account
    def account_transfers_outgoing(address:, hash: nil, id: nil, page_size: nil)
      request!(:get, '/account/transfers/outgoing',
        address: address,
        hash: hash,
        id: id,
        pageSize: page_size
      ) do |res|
        res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
      end
    end

    # @param [String] address
    # @param [String] hash
    # @param [String] id
    # @param [Integer] page_size
    # @return [Array <Nis::Struct::TransactionMetaDataPair>]
    # @see https://nemproject.github.io/#requesting-transaction-data-for-an-account
    def account_transfers_all(address:, hash: nil, id: nil, page_size: nil)
      request!(:get, '/account/transfers/all',
        address: address,
        hash: hash,
        id: id,
        pageSize: page_size
      ) do |res|
        res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
      end
    end

    # @param [Symbol] dir direction(:in, :out, :all)
    # @param [String] address
    # @param [String] hash
    # @param [String] id
    # @param [Integer] page_size
    # @return [Array <Nis::Struct::TransactionMetaDataPair>]
    # @see https://nemproject.github.io/#requesting-transaction-data-for-an-account
    def account_transfers(dir = :all, address:, hash: nil, id: nil, page_size: nil)
      request!(:get, "/account/transfers/#{account_transfers_direction(dir)}",
        address: address,
        hash: hash,
        id: id,
        pageSize: page_size
      ) do |res|
        res[:data].map { |tmdp| Nis::Struct::TransactionMetaDataPair.build(tmdp) }
      end
    end

    def account_transfers_direction(dir)
      case dir.to_s
      when /\Ai/ then :incoming
      when /\Ao/ then :outgoing
        else :all
      end
    end
  end
end