servant-util-0.2: Servant servers utilities.
Safe HaskellNone
LanguageHaskell2010

Servant.Util.Combinators.Pagination

Description

Provides pagination API combinator.

Synopsis

Documentation

data PaginationParams (settings :: PaginationPageSize) Source #

API combinator which enables pagination.

Pagination parameters are specified via offset and limit query parameters. Both fields are optional; offset defaults to 0 and default value of limit is defined in settings argument.

Your endpoint implementation will be provided with PaginationSpec variable which will contain parameters provided by the user.

Instances

Instances details
HasClient m subApi => HasClient m (PaginationParams settings :> subApi) Source # 
Instance details

Defined in Servant.Util.Combinators.Pagination

Associated Types

type Client m (PaginationParams settings :> subApi) #

Methods

clientWithRoute :: Proxy m -> Proxy (PaginationParams settings :> subApi) -> Request -> Client m (PaginationParams settings :> subApi) #

hoistClientMonad :: Proxy m -> Proxy (PaginationParams settings :> subApi) -> (forall x. mon x -> mon' x) -> Client mon (PaginationParams settings :> subApi) -> Client mon' (PaginationParams settings :> subApi) #

(HasLoggingServer config lcontext subApi ctx, KnownPaginationPageSize settings, HasContextEntry (ctx .++ DefaultErrorFormatters) ErrorFormatters) => HasLoggingServer (config :: Type) lcontext (PaginationParams settings :> subApi :: Type) ctx Source # 
Instance details

Defined in Servant.Util.Combinators.Pagination

Methods

routeWithLog :: Proxy (LoggingApiRec config lcontext (PaginationParams settings :> subApi)) -> Context ctx -> Delayed env (Server (LoggingApiRec config lcontext (PaginationParams settings :> subApi))) -> Router env Source #

(HasSwagger api, KnownPaginationPageSize settings) => HasSwagger (PaginationParams settings :> api :: Type) Source # 
Instance details

Defined in Servant.Util.Combinators.Pagination

Methods

toSwagger :: Proxy (PaginationParams settings :> api) -> Swagger #

(HasServer subApi ctx, HasContextEntry (ctx .++ DefaultErrorFormatters) ErrorFormatters, KnownPaginationPageSize settings) => HasServer (PaginationParams settings :> subApi :: Type) ctx Source # 
Instance details

Defined in Servant.Util.Combinators.Pagination

Associated Types

type ServerT (PaginationParams settings :> subApi) m #

Methods

route :: Proxy (PaginationParams settings :> subApi) -> Context ctx -> Delayed env (Server (PaginationParams settings :> subApi)) -> Router env #

hoistServerWithContext :: Proxy (PaginationParams settings :> subApi) -> Proxy ctx -> (forall x. m x -> n x) -> ServerT (PaginationParams settings :> subApi) m -> ServerT (PaginationParams settings :> subApi) n #

type Client m (PaginationParams settings :> subApi) Source # 
Instance details

Defined in Servant.Util.Combinators.Pagination

type Client m (PaginationParams settings :> subApi) = PaginationSpec -> Client m subApi
type ServerT (PaginationParams settings :> subApi :: Type) m Source # 
Instance details

Defined in Servant.Util.Combinators.Pagination

type ServerT (PaginationParams settings :> subApi :: Type) m = PaginationSpec -> ServerT subApi m

data PaginationPageSize Source #

Determines the page size used when client leaves it unspecified.

Constructors

DefPageSize Nat

Use specified default.

DefUnlimitedPageSize

Display all contents.

class KnownPaginationPageSize (settings :: PaginationPageSize) Source #

Minimal complete definition

settingDefPageSize

data PaginationSpec Source #

Contains pagination parameters provided by the user.

Constructors

PaginationSpec 

Fields

Instances

Instances details
Default PaginationSpec Source #

Retains full content.

Instance details

Defined in Servant.Util.Combinators.Pagination

Methods

def :: PaginationSpec #

defPageSize :: PaginationSpec Source #

Do not paginate anything, use default page size.

itemsOnPage :: HasCallStack => Natural -> PaginationSpec Source #

Conveient builder for PaginationRequest, creates pagination with zero offset and given limit.

skipping :: Natural -> PaginationSpec -> PaginationSpec Source #

Convenient builder for PaginationRequest, modifies offset.

fullContent :: PaginationSpec Source #

Deprecated: Use defPageSize instead

Do not paginate anything.