module Strive.Options.Streams
( GetStreamsOptions (..),
)
where
import Data.Default (Default, def)
import Network.HTTP.Types (QueryLike, toQuery)
import Strive.Enums (Resolution, SeriesType (Distance))
data GetStreamsOptions = GetStreamsOptions
{ GetStreamsOptions -> Maybe Resolution
getStreamsOptions_resolution :: Maybe Resolution,
GetStreamsOptions -> SeriesType
getStreamsOptions_seriesType :: SeriesType
}
deriving (Int -> GetStreamsOptions -> ShowS
[GetStreamsOptions] -> ShowS
GetStreamsOptions -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetStreamsOptions] -> ShowS
$cshowList :: [GetStreamsOptions] -> ShowS
show :: GetStreamsOptions -> String
$cshow :: GetStreamsOptions -> String
showsPrec :: Int -> GetStreamsOptions -> ShowS
$cshowsPrec :: Int -> GetStreamsOptions -> ShowS
Show)
instance Default GetStreamsOptions where
def :: GetStreamsOptions
def =
GetStreamsOptions
{ getStreamsOptions_resolution :: Maybe Resolution
getStreamsOptions_resolution = forall a. Maybe a
Nothing,
getStreamsOptions_seriesType :: SeriesType
getStreamsOptions_seriesType = SeriesType
Distance
}
instance QueryLike GetStreamsOptions where
toQuery :: GetStreamsOptions -> Query
toQuery GetStreamsOptions
options =
forall a. QueryLike a => a -> Query
toQuery
[ (String
"resolution", forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall a. Show a => a -> String
show (GetStreamsOptions -> Maybe Resolution
getStreamsOptions_resolution GetStreamsOptions
options)),
(String
"series_type", forall a. a -> Maybe a
Just (forall a. Show a => a -> String
show (GetStreamsOptions -> SeriesType
getStreamsOptions_seriesType GetStreamsOptions
options)))
]