Sha256: 01e96320dd817402fb9aa54c4a978a749601b5ef79f6aa8545901e05d003c38e

Contents?: true

Size: 1.88 KB

Versions: 78

Compression:

Stored size: 1.88 KB

Contents

# frozen_string_literal: true

module Cryptum
  # This module is used to Interact with the APIs
  module API
    # Module specifically related to orders history retrieval.
    module Products
      # Obtain latest order history
      public_class_method def self.get(opts = {})
        option_choice = opts[:option_choice]
        env = opts[:env]

        products = Cryptum::API::Rest.call(
          option_choice: option_choice,
          env: env,
          http_method: :GET,
          api_call: '/products'
        )

        if products.length.positive?
          supported_products_filter = products.select do |product|
            product[:id].match?(/USD$/) &&
              product[:status] == 'online' &&
              product[:fx_stablecoin] == false
          end
          sorted_products = supported_products_filter.sort_by { |hash| hash[:id] }
        end

        sorted_products
      rescue Interrupt, StandardError => e
        Cryptum::Log.append(level: :error, msg: e, which_self: self)
      end

      # List Supported Cryptum Products and Exit
      public_class_method def self.list_and_exit(opts = {})
        option_choice = opts[:option_choice]
        env = opts[:env]

        puts "\n#{option_choice.driver_name} Supports the Following Products:"
        products = get(
          option_choice: option_choice,
          env: env
        )

        products.map do |product|
          puts product[:id].downcase
        end

        exit 0
      rescue Interrupt, StandardError => e
        Cryptum::Log.append(level: :error, msg: e, which_self: self)
      end

      # Display Usage for this Module
      public_class_method def self.help
        puts "USAGE:
          fees = #{self}.get(
            env: 'required - Coinbase::Option::Environment.get Object',
            option_choice: 'required - Coinbase::Option::Choice Object'
          )
        "
      end
    end
  end
end

Version data entries

78 entries across 78 versions & 1 rubygems

Version Path
cryptum-0.0.466 lib/cryptum/api/products.rb
cryptum-0.0.465 lib/cryptum/api/products.rb
cryptum-0.0.464 lib/cryptum/api/products.rb
cryptum-0.0.463 lib/cryptum/api/products.rb
cryptum-0.0.462 lib/cryptum/api/products.rb
cryptum-0.0.461 lib/cryptum/api/products.rb
cryptum-0.0.460 lib/cryptum/api/products.rb
cryptum-0.0.459 lib/cryptum/api/products.rb
cryptum-0.0.458 lib/cryptum/api/products.rb
cryptum-0.0.457 lib/cryptum/api/products.rb
cryptum-0.0.456 lib/cryptum/api/products.rb
cryptum-0.0.455 lib/cryptum/api/products.rb
cryptum-0.0.454 lib/cryptum/api/products.rb
cryptum-0.0.453 lib/cryptum/api/products.rb
cryptum-0.0.452 lib/cryptum/api/products.rb
cryptum-0.0.451 lib/cryptum/api/products.rb
cryptum-0.0.450 lib/cryptum/api/products.rb
cryptum-0.0.449 lib/cryptum/api/products.rb
cryptum-0.0.448 lib/cryptum/api/products.rb
cryptum-0.0.447 lib/cryptum/api/products.rb