{-# LANGUAGE DeriveGeneric #-}
module BfHaskell.BettingAPI.Response
(
JsonEventTypeResult(..)
, JsonResponseListEventTypes(..)
, JsonResponseListTimeRanges(..)
, JsonCompetitionResult(..)
, JsonResponseListCompetitions(..)
, JsonResponseListMarketCatalogue(..)
, JsonResponseListMarketBook(..)
) where
import BfHaskell.BettingAPI.Types
import BfHaskell.Internal.JsonTypes (defaultFromJsonOptions,
defaultToJsonOptions)
import qualified Data.Aeson as A
import qualified Data.Vector as V
import GHC.Generics (Generic)
data JsonEventTypeResult = JsonEventTypeResult { _jsetrEventType :: JsonEventType
, _jsetrMarketCount :: Int
} deriving (Show, Generic)
instance A.FromJSON JsonEventTypeResult where
parseJSON = A.genericParseJSON defaultFromJsonOptions
newtype JsonResponseListEventTypes = JsonResponseListEventTypes
(V.Vector JsonEventTypeResult)
deriving (Show, Generic)
instance A.FromJSON JsonResponseListEventTypes
data JsonTimeRangeResult = JsonTimeRangeResult
{ _jpltrTimeRange :: JsonTimeRange
, _jpltrMarketCount :: Int
} deriving (Show, Generic)
instance A.FromJSON JsonTimeRangeResult where
parseJSON = A.genericParseJSON defaultFromJsonOptions
newtype JsonResponseListTimeRanges = JsonResponseListTimeRanges
(V.Vector JsonTimeRangeResult)
deriving (Show, Generic)
instance A.FromJSON JsonResponseListTimeRanges
data JsonCompetitionResult = JsonCompetitionResult
{ _jpcprCompetition :: JsonCompetition
, _jpcprMarketCount :: Int
} deriving (Show, Generic)
instance A.FromJSON JsonCompetitionResult where
parseJSON = A.genericParseJSON defaultFromJsonOptions
newtype JsonResponseListCompetitions = JsonResponseListCompetitions
(V.Vector JsonCompetitionResult)
deriving (Show, Generic)
instance A.FromJSON JsonResponseListCompetitions
newtype JsonResponseListMarketCatalogue = JsonResponseListMarketCatalogue
(V.Vector JsonMarketCatalogue)
deriving (Show, Generic)
instance A.FromJSON JsonResponseListMarketCatalogue
instance A.ToJSON JsonResponseListMarketCatalogue where
toJSON = A.genericToJSON defaultToJsonOptions
newtype JsonResponseListMarketBook = JsonResponseListMarketBook
(V.Vector JsonMarketBook)
deriving (Show, Generic)
instance A.FromJSON JsonResponseListMarketBook