Packages

A tool to retrieve an information about cryptocurrency world from a CoinGecko.com

Current section

Files

Jump to
gecko lib ex_gecko simple.ex
Raw

lib/ex_gecko/simple.ex

defmodule Gecko.Simple do
@moduledoc false
alias Gecko.HttpClient
@type error :: {:error, {:http_error | :request_error, String.t()}}
@type price_params :: %{
required(:ids) => String.t(),
required(:vs_currencies) => String.t(),
optional(:include_market_cap) => boolean(),
optional(:include_24hr_vol) => boolean(),
optional(:include_24hr_change) => boolean(),
optional(:include_last_updated_at) => boolean()
}
@spec price(price_params) :: {:ok, any()} | error
def price(params) do
HttpClient.get("simple/price", params)
end
@type token_price_params :: %{
required(:id) => String.t(),
required(:contract_addresses) => String.t(),
required(:vs_currencies) => String.t(),
optional(:include_market_cap) => boolean(),
optional(:include_24hr_vol) => boolean(),
optional(:include_24hr_change) => boolean(),
optional(:include_last_updated_at) => boolean()
}
@spec token_price(token_price_params) :: {:ok, any()} | error
def token_price(params = %{id: id}) do
params = Map.delete(params, :id)
HttpClient.get("simple/token_price/#{id}", params)
end
@spec supported_vs_currencies() :: {:ok, list(String.t())} | error
def supported_vs_currencies do
HttpClient.get("simple/supported_vs_currencies")
end
end