# 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 StandardError => e raise e 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 StandardError => e raise e 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