{-# LANGUAGE OverloadedStrings #-}

module ZaifExchangeAPI.Public
    ( lastPrice
    , ticker
    , trades
    , depth
    ) where

import ZaifExchangeAPI.Type
import ZaifExchangeAPI.Util

import Data.Text.Lazy.Encoding (encodeUtf8)
import Data.Aeson (FromJSON, decode)

run :: FromJSON a => Api -> Chart -> Maybe a
run api chart = decode $ encodeUtf8 $ get api chart

lastPrice :: Chart -> Maybe JLastPrice
lastPrice = run LastPrice

ticker :: Chart -> Maybe JTicker
ticker = run Ticker

trades :: Chart -> Maybe JTradeList
trades = run Trades

depth :: Chart -> Maybe JDepth
depth = run Depth