strelka-0.4: Extremely flexible and composable router

Safe HaskellNone
LanguageHaskell2010

Strelka.RequestParser

Contents

Synopsis

Documentation

run :: RequestParser m a -> Request -> [Text] -> m (Either Text (a, [Text])) Source

unliftEither :: Monad m => RequestParser m a -> RequestParser m (Either Text a) Source

Extract the error from RequestParser.

Path segments

consumeSegment :: Monad m => RequestParser m Text Source

Consume the next segment of the path.

Methods

ensureThatMethodIsGet :: Monad m => RequestParser m () Source

Same as ensureThatMethodIs "get".

ensureThatMethodIsPost :: Monad m => RequestParser m () Source

Same as ensureThatMethodIs "post".

ensureThatMethodIsPut :: Monad m => RequestParser m () Source

Same as ensureThatMethodIs "put".

ensureThatMethodIsDelete :: Monad m => RequestParser m () Source

Same as ensureThatMethodIs "delete".

ensureThatMethodIsHead :: Monad m => RequestParser m () Source

Same as ensureThatMethodIs "head".

ensureThatMethodIsTrace :: Monad m => RequestParser m () Source

Same as ensureThatMethodIs "trace".

Headers

getHeader :: Monad m => ByteString -> RequestParser m ByteString Source

Lookup a header by name in lower-case.

ensureThatAccepts :: Monad m => ByteString -> RequestParser m () Source

Ensure that the request provides an Accept header, which includes the specified content type. Content type must be in lower-case.

ensureThatAcceptsText :: Monad m => RequestParser m () Source

Same as ensureThatAccepts "text/plain".

ensureThatAcceptsHTML :: Monad m => RequestParser m () Source

Same as ensureThatAccepts "text/html".

ensureThatAcceptsJSON :: Monad m => RequestParser m () Source

Same as ensureThatAccepts "application/json".

checkIfAccepts :: Monad m => ByteString -> RequestParser m Bool Source

Check whether the request provides an Accept header, which includes the specified content type. Content type must be in lower-case.

getAuthorization :: Monad m => RequestParser m (Text, Text) Source

Parse the username and password from the basic authorization header.

Params

getParam :: Monad m => ByteString -> RequestParser m (Maybe ByteString) Source

Get a parameter's value by its name, failing if the parameter is not present.

Maybe encodes whether the value was specified, i.e. ?name=value vs ?name.

Body

consumeBodyFolding :: MonadIO m => (a -> ByteString -> a) -> a -> RequestParser m a Source