salvia-0.0.4: src/Network/Salvia/Handlers/MethodRouter.hs
module Network.Salvia.Handlers.MethodRouter (
hMethod
, hMethodRouter
, hOPTIONS
, hGET
, hHEAD
, hPOST
, hPUT
, hDELETE
, hTRACE
, hCONNECT
) where
import Network.Salvia.Handlers.Dispatching
import Network.Salvia.Handlers.Error
import Network.Salvia.Httpd
import Network.Protocol.Http
hMethod' :: Dispatcher Method a
hMethod' = hDispatch (method . request) (==)
hMethodRouter :: ListDispatcher Method a
hMethodRouter = hListDispatch hMethod'
hMethod :: Method -> Handler () -> Handler ()
hMethod m k = hMethod' m k (hError NotFound)
-- Shortcut handlers that only work for specific method types or fail.
hOPTIONS, hGET, hHEAD, hPOST, hPUT, hDELETE, hTRACE, hCONNECT
:: Handler () -> Handler ()
hOPTIONS = hMethod OPTIONS
hGET = hMethod GET
hHEAD = hMethod HEAD
hPOST = hMethod POST
hPUT = hMethod PUT
hDELETE = hMethod DELETE
hTRACE = hMethod TRACE
hCONNECT = hMethod CONNECT