Current section

Files

Jump to
cryptowatch_ex lib cryptex api candle.ex
Raw

lib/cryptex/api/candle.ex

defmodule Cryptex.API.Candle do
@moduledoc """
"""
use Cryptex.Resource
@spec list(Cryptex.exchange, Cryptex.market, keyword) :: [Types.Candle.t]
def list(exchange, market, opts \\ []) do
opts = [before: opts[:before], after: opts[:after], periods: opts[:period]]
"/markets/#{exchange}/#{market}/ohlc"
|> Client.get(opts)
|> parse(exchange, market, opts)
end
@spec parse(map, Cryptex.exchange, Cryptex.market, keyword) :: [Types.Candle.t]
defp parse(response, exchange, market, opts) do
(response.result || [])
|> Map.get(:"#{opts[:periods]}")
|> Enum.map(fn [closed_at, open, high, low, close, volume] ->
struct(Types.Candle, %{
exchange: exchange,
market: market,
closed_at: DateTime.from_unix!(closed_at),
open: open,
high: high,
low: low,
close: close,
volume: volume})
end)
end
end