Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype RequestParser m a = RequestParser (ReaderT Request (StateT [Text] (ExceptT Text m)) a)
- run :: RequestParser m a -> Request -> [Text] -> m (Either Text (a, [Text]))
- fail :: Monad m => Text -> RequestParser m a
- liftEither :: Monad m => Either Text a -> RequestParser m a
- liftMaybe :: Monad m => Maybe a -> RequestParser m a
- unliftEither :: Monad m => RequestParser m a -> RequestParser m (Either Text a)
- consumeSegment :: Monad m => RequestParser m Text
- consumeSegmentWithParser :: Monad m => Parser a -> RequestParser m a
- consumeSegmentIfIs :: Monad m => Text -> RequestParser m ()
- ensureThatNoSegmentsIsLeft :: Monad m => RequestParser m ()
- getMethod :: Monad m => RequestParser m ByteString
- ensureThatMethodIs :: Monad m => ByteString -> RequestParser m ()
- ensureThatMethodIsGet :: Monad m => RequestParser m ()
- ensureThatMethodIsPost :: Monad m => RequestParser m ()
- ensureThatMethodIsPut :: Monad m => RequestParser m ()
- ensureThatMethodIsDelete :: Monad m => RequestParser m ()
- ensureThatMethodIsHead :: Monad m => RequestParser m ()
- ensureThatMethodIsTrace :: Monad m => RequestParser m ()
- getHeader :: Monad m => ByteString -> RequestParser m ByteString
- ensureThatAccepts :: Monad m => ByteString -> RequestParser m ()
- ensureThatAcceptsText :: Monad m => RequestParser m ()
- ensureThatAcceptsHTML :: Monad m => RequestParser m ()
- ensureThatAcceptsJSON :: Monad m => RequestParser m ()
- checkIfAccepts :: Monad m => ByteString -> RequestParser m Bool
- getAuthorization :: Monad m => RequestParser m (Text, Text)
- getParam :: Monad m => ByteString -> RequestParser m (Maybe ByteString)
- consumeBody :: MonadIO m => RequestBodyConsumer a -> RequestParser m a
- consumeBodyFolding :: MonadIO m => (a -> ByteString -> a) -> a -> RequestParser m a
- consumeBodyBuilding :: (MonadIO m, Monoid a) => (ByteString -> a) -> RequestParser m a
- consumeBodyAsBytes :: MonadIO m => RequestParser m ByteString
- consumeBodyAsLazyBytes :: MonadIO m => RequestParser m ByteString
- consumeBodyAsBytesBuilder :: MonadIO m => RequestParser m Builder
- consumeBodyAsText :: MonadIO m => RequestParser m Text
- consumeBodyAsLazyText :: MonadIO m => RequestParser m Text
- consumeBodyAsTextBuilder :: MonadIO m => RequestParser m Builder
- consumeBodyWithBytesParser :: MonadIO m => Parser a -> RequestParser m a
- consumeBodyWithTextParser :: MonadIO m => Parser a -> RequestParser m a
Documentation
newtype RequestParser m a Source
MonadTrans RequestParser Source | |
Monad m => MonadError Text (RequestParser m) Source | |
Monad m => Monad (RequestParser m) Source | |
Functor m => Functor (RequestParser m) Source | |
Monad m => Applicative (RequestParser m) Source | |
Monad m => Alternative (RequestParser m) Source | |
Monad m => MonadPlus (RequestParser m) Source | |
MonadIO m => MonadIO (RequestParser m) Source |
fail :: Monad m => Text -> RequestParser m a Source
liftEither :: Monad m => Either Text a -> RequestParser m a Source
liftMaybe :: Monad m => Maybe a -> RequestParser m a 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.
consumeSegmentWithParser :: Monad m => Parser a -> RequestParser m a Source
consumeSegmentIfIs :: Monad m => Text -> RequestParser m () Source
ensureThatNoSegmentsIsLeft :: Monad m => RequestParser m () Source
Methods
getMethod :: Monad m => RequestParser m ByteString Source
ensureThatMethodIs :: Monad m => ByteString -> RequestParser m () Source
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
consumeBody :: MonadIO m => RequestBodyConsumer a -> RequestParser m a Source
consumeBodyFolding :: MonadIO m => (a -> ByteString -> a) -> a -> RequestParser m a Source
consumeBodyBuilding :: (MonadIO m, Monoid a) => (ByteString -> a) -> RequestParser m a Source
consumeBodyAsBytes :: MonadIO m => RequestParser m ByteString Source
consumeBodyAsText :: MonadIO m => RequestParser m Text Source
consumeBodyAsLazyText :: MonadIO m => RequestParser m Text Source
consumeBodyWithBytesParser :: MonadIO m => Parser a -> RequestParser m a Source
consumeBodyWithTextParser :: MonadIO m => Parser a -> RequestParser m a Source