nested-routes-4.0.0: Declarative, compositional Wai responses

Safe HaskellNone
LanguageHaskell2010

Web.Routes.Nested.VerbListener

Contents

Synopsis

Documentation

type Verb = StdMethod Source

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

type Respond u r = Request -> Maybe u -> r Source

type ResponseSpec u m r = (HandleUpload m u, Respond u r) Source

Verb Map

newtype Verbs u m r Source

Constructors

Verbs 

Fields

unVerbs :: Map Verb (ResponseSpec u m r)
 

Instances

Monad m => MonadWriter (Union (Verbs u m r)) (VerbListenerT r u m) Source 
Functor (Verbs u m) Source 
Monoid (Verbs u m r) Source 
HasUnion (Verbs u m r) Source 
HasEmpty (Verbs u m r) Source 

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

To compensate for responses that want to peek into the Request object.

Verb Writer

newtype VerbListenerT r u m a Source

Constructors

VerbListenerT 

Fields

runVerbListenerT :: WriterT (Union (Verbs u m r)) m a
 

Instances

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

foldMWithKey :: Monad m => (acc -> Verb -> a -> m acc) -> acc -> Map Verb a -> m acc Source

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

For simple GET responses

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

Inspect the Request object supplied by WAI

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

For simple POST responses

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

Inspect the Request object supplied by WAI

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

For simple PUT responses

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

Inspect the Request object supplied by WAI

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

For simple DELETE responses

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

Inspect the Request object supplied by WAI