coinbase-pro-0.5.0.0: src/lib/CoinbasePro/WebSocketFeed/Channel/Heartbeat.hs
{-# LANGUAGE OverloadedStrings #-}
module CoinbasePro.WebSocketFeed.Channel.Heartbeat
( Heartbeat (..)
)where
import Data.Aeson (FromJSON (..), withObject, (.:))
import Data.Text (Text)
import Data.Time.Clock (UTCTime)
data Heartbeat = Heartbeat
{ sequence :: Int
, lastTradeId :: Int
, productId :: Text
, time :: UTCTime
} deriving (Eq, Ord, Show)
instance FromJSON Heartbeat where
parseJSON = withObject "heartbeat" $ \o ->
Heartbeat <$>
o .: "sequence" <*>
o .: "last_trade_id" <*>
o .: "product_id" <*>
o .: "time"