Sha256: 317c4de6decd7f0cde54614f022d17e3a78ebe990e4b92c2f11b9748b426701a

Contents?: true

Size: 830 Bytes

Versions: 4

Compression:

Stored size: 830 Bytes

Contents

module PaxfulClient
  class GetBalanceResponse < BaseResponse

    attribute :wallet, PaxfulClient::Wallet, lazy: true, default: :default_wallet
    attribute :body, Object, lazy: true, default: :default_body
    attribute :parsed_body, String, lazy: true, default: :default_parsed_body

    private

    def default_success
      unless parsed_body['data'].present?
        self.error_message = 'GetBalanceResponse: data not present'
        return false
      end
      raw_response.success?
    end

    def default_wallet
      args = parsed_body["data"].each_with_object({}) do |(attr, val), hash|
        hash[attr.underscore] = val
      end

      Wallet.new(args)
    end

    def default_body
      raw_response.body
    end

    def default_parsed_body
      JSON.parse(body).with_indifferent_access
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
paxful_client-1.5.1 lib/paxful_client/responses/get_balance_response.rb
paxful_client-1.5.0 lib/paxful_client/responses/get_balance_response.rb
paxful_client-1.4.0 lib/paxful_client/responses/get_balance_response.rb
paxful_client-1.3.0 lib/paxful_client/responses/get_balance_response.rb