{-| Module : Servant.Server.Auth.Token.Monad Description : Helpers for pagination implementation Copyright : (c) Anton Gushcha, 2016 License : MIT Maintainer : ncrashed@gmail.com Stability : experimental Portability : Portable -} module Servant.Server.Auth.Token.Pagination( pagination ) where import Data.Maybe import Servant.Server.Auth.Token.Config import Servant.Server.Auth.Token.Monad import Servant.API.Auth.Token.Pagination -- | Helper that implements pagination logic pagination :: AuthHandler m => Maybe Page -- ^ Parameter of page -> Maybe PageSize -- ^ Parameter of page size -> (Page -> PageSize -> m a) -- ^ Handler -> m a pagination pageParam pageSizeParam f = do ps <- getsConfig defaultPageSize let page = fromMaybe 0 pageParam pageSize = fromMaybe ps pageSizeParam f page pageSize