module Strive.Internal.Options
( PaginationOptions(..)
) where
import Data.Default (Default, def)
import Network.HTTP.Types (QueryLike, toQuery)
data =
{ :: Integer
, :: Integer
}
deriving Int -> PaginationOptions -> ShowS
[PaginationOptions] -> ShowS
PaginationOptions -> String
(Int -> PaginationOptions -> ShowS)
-> (PaginationOptions -> String)
-> ([PaginationOptions] -> ShowS)
-> Show PaginationOptions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PaginationOptions] -> ShowS
$cshowList :: [PaginationOptions] -> ShowS
show :: PaginationOptions -> String
$cshow :: PaginationOptions -> String
showsPrec :: Int -> PaginationOptions -> ShowS
$cshowsPrec :: Int -> PaginationOptions -> ShowS
Show
instance Default PaginationOptions where
def :: PaginationOptions
def = PaginationOptions :: Integer -> Integer -> PaginationOptions
PaginationOptions
{ paginationOptions_page :: Integer
paginationOptions_page = Integer
1
, paginationOptions_perPage :: Integer
paginationOptions_perPage = Integer
200
}
instance QueryLike PaginationOptions where
toQuery :: PaginationOptions -> Query
toQuery PaginationOptions
options = [(String, String)] -> Query
forall a. QueryLike a => a -> Query
toQuery
[ (String
"page", Integer -> String
forall a. Show a => a -> String
show (PaginationOptions -> Integer
paginationOptions_page PaginationOptions
options))
, (String
"per_page", Integer -> String
forall a. Show a => a -> String
show (PaginationOptions -> Integer
paginationOptions_perPage PaginationOptions
options))
]