-- | Common options that apply to many endpoints. module Strive.Internal.Options ( PaginationOptions (..), ) where import Data.Default (Default, def) import Network.HTTP.Types (QueryLike, toQuery) -- | Options for paginating. data PaginationOptions = PaginationOptions { paginationOptions_page :: Integer, paginationOptions_perPage :: Integer } deriving (Show) instance Default PaginationOptions where def = PaginationOptions { paginationOptions_page = 1, paginationOptions_perPage = 200 } instance QueryLike PaginationOptions where toQuery options = toQuery [ ("page", show (paginationOptions_page options)), ("per_page", show (paginationOptions_perPage options)) ]