module Strive.Options.Comments
( GetActivityCommentsOptions(..)
) where
import Data.Aeson (encode)
import Data.ByteString.Char8 (unpack)
import Data.ByteString.Lazy (toStrict)
import Data.Default (Default, def)
import Network.HTTP.Types (QueryLike, toQuery)
data =
{ :: Bool
, :: Integer
, :: Integer
}
deriving Int -> GetActivityCommentsOptions -> ShowS
[GetActivityCommentsOptions] -> ShowS
GetActivityCommentsOptions -> String
(Int -> GetActivityCommentsOptions -> ShowS)
-> (GetActivityCommentsOptions -> String)
-> ([GetActivityCommentsOptions] -> ShowS)
-> Show GetActivityCommentsOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetActivityCommentsOptions] -> ShowS
$cshowList :: [GetActivityCommentsOptions] -> ShowS
show :: GetActivityCommentsOptions -> String
$cshow :: GetActivityCommentsOptions -> String
showsPrec :: Int -> GetActivityCommentsOptions -> ShowS
$cshowsPrec :: Int -> GetActivityCommentsOptions -> ShowS
Show
instance Default GetActivityCommentsOptions where
def :: GetActivityCommentsOptions
def = GetActivityCommentsOptions :: Bool -> Integer -> Integer -> GetActivityCommentsOptions
GetActivityCommentsOptions
{ getActivityCommentsOptions_markdown :: Bool
getActivityCommentsOptions_markdown = Bool
False
, getActivityCommentsOptions_page :: Integer
getActivityCommentsOptions_page = Integer
1
, getActivityCommentsOptions_perPage :: Integer
getActivityCommentsOptions_perPage = Integer
200
}
instance QueryLike GetActivityCommentsOptions where
toQuery :: GetActivityCommentsOptions -> Query
toQuery GetActivityCommentsOptions
options = [(String, String)] -> Query
forall a. QueryLike a => a -> Query
toQuery
[ ( String
"before"
, ByteString -> String
unpack
(ByteString -> ByteString
toStrict (Bool -> ByteString
forall a. ToJSON a => a -> ByteString
encode (GetActivityCommentsOptions -> Bool
getActivityCommentsOptions_markdown GetActivityCommentsOptions
options)))
)
, (String
"page", Integer -> String
forall a. Show a => a -> String
show (GetActivityCommentsOptions -> Integer
getActivityCommentsOptions_page GetActivityCommentsOptions
options))
, (String
"per_page", Integer -> String
forall a. Show a => a -> String
show (GetActivityCommentsOptions -> Integer
getActivityCommentsOptions_perPage GetActivityCommentsOptions
options))
]