slack-web-1.5.0.0: src/Web/Slack/Pager/Types.hs
{-# LANGUAGE TemplateHaskell #-}
module Web.Slack.Pager.Types where
import Web.Slack.Prelude
import Web.Slack.Util
newtype Cursor = Cursor {unCursor :: Text}
deriving stock (Eq, Generic, Show)
deriving newtype (NFData, Hashable, FromJSON, ToJSON, ToHttpApiData)
newtype ResponseMetadata = ResponseMetadata {responseMetadataNextCursor :: Maybe Cursor}
deriving stock (Eq, Show, Generic)
instance NFData ResponseMetadata
$(deriveJSON (jsonOpts "responseMetadata") ''ResponseMetadata)
class PagedRequest a where
setCursor :: Maybe Cursor -> a -> a
class PagedResponse a where
type ResponseObject a
getResponseMetadata :: a -> Maybe ResponseMetadata
getResponseData :: a -> [ResponseObject a]