wai-middleware-verbs-0.0.3: Route different middleware responses based on the incoming HTTP verb.

Safe HaskellNone
LanguageHaskell2010

Network.Wai.Middleware.Verbs

Synopsis

Documentation

newtype Verbs e u m r Source

Constructors

Verbs 

Fields

unVerbs :: Map Verb (ResponseSpec e u m r)
 

Instances

Functor (Verbs e u m) Source 
Monoid (Verbs e u m r) Source 
Monad m => MonadState (Verbs e u m r) (VerbListenerT r e u m) Source 

type Verb = StdMethod Source

getVerb :: Request -> Verb Source

type HandleUpload e m u = Request -> ExceptT (Maybe e) m u Source

type RespondUpload e u r = Request -> Either (Maybe e) u -> r Source

type ResponseSpec e u m r = (HandleUpload e m u, RespondUpload e u r) Source

supplyReq :: Request -> Map Verb (ResponseSpec e u m r) -> Map Verb (ExceptT (Maybe e) m u, Either (Maybe e) u -> r) Source

lookupVerb :: Verb -> Request -> Verbs e u m r -> Maybe (ExceptT (Maybe e) m u, Either (Maybe e) u -> r) Source

Take a verb map and a request, and return the lookup after providing the request (for upload cases).

lookupVerbM :: Monad m => Verb -> Request -> Verbs e u m r -> m (Maybe r) Source

newtype VerbListenerT r e u m a Source

Constructors

VerbListenerT 

Fields

runVerbListenerT :: StateT (Verbs e u m r) m a
 

Instances

MonadTrans (VerbListenerT r e u) Source 
Monad m => Monad (VerbListenerT r e u m) Source 
Functor m => Functor (VerbListenerT r e u m) Source 
Monad m => Applicative (VerbListenerT r e u m) Source 
MonadIO m => MonadIO (VerbListenerT r e u m) Source 
Monad m => MonadState (Verbs e u m r) (VerbListenerT r e u m) Source 

execVerbListenerT :: Monad m => VerbListenerT r e u m a -> m (Verbs e u m r) Source

verbsToMiddleware :: MonadIO m => VerbListenerT (MiddlewareT m) e u m () -> MiddlewareT m Source

get :: Monad m => r -> VerbListenerT r e u m () Source

For simple GET responses

getReq :: Monad m => (Request -> r) -> VerbListenerT r e u m () Source

Inspect the Request object supplied by WAI

post :: (Monad m, MonadIO m) => HandleUpload e m u -> (Either (Maybe e) u -> r) -> VerbListenerT r e u m () Source

For simple POST responses

postReq :: (Monad m, MonadIO m) => HandleUpload e m u -> RespondUpload e u r -> VerbListenerT r e u m () Source

Inspect the Request object supplied by WAI

put :: (Monad m, MonadIO m) => HandleUpload e m u -> (Either (Maybe e) u -> r) -> VerbListenerT r e u m () Source

For simple PUT responses

putReq :: (Monad m, MonadIO m) => HandleUpload e m u -> RespondUpload e u r -> VerbListenerT r e u m () Source

Inspect the Request object supplied by WAI

delete :: Monad m => r -> VerbListenerT r e u m () Source

For simple DELETE responses

deleteReq :: Monad m => (Request -> r) -> VerbListenerT r e u m () Source

Inspect the Request object supplied by WAI