ivy-web-0.2: src/Web/Ivy/Types.hs
{-# LANGUAGE OverloadedStrings, MultiParamTypeClasses #-}
module Web.Ivy.Types
(Handler(..)
)
where
import Snap.Types
class MonadSnap m => Handler m a where
get, post, put, delete, handle :: a -> m ()
get _ = unimplemented
post _ = unimplemented
put _ = unimplemented
delete _ = unimplemented
handle a = getRequest >>= \req -> case rqMethod req of
m | m == GET -> get a
| m == POST -> post a
| m == PUT -> put a
| m == DELETE -> delete a
otherwise -> unimplemented
unimplemented :: MonadSnap m => m ()
unimplemented = writeBS "not implemented method"