packages feed

salvia-0.1: src/Network/Salvia/Handler/ExtensionDispatcher.hs

module Network.Salvia.Handler.ExtensionDispatcher (
    hExtension
  , hExtensionRouter
  ) where

import Data.Record.Label
import Network.Protocol.Http (uri)
import Network.Protocol.Uri (extension, path)
import Network.Salvia.Handler.Dispatching
import Network.Salvia.Httpd (request)

{- | Request dispatcher based on the request path file extenstion. -}

hExtension :: Dispatcher (Maybe String) a
hExtension = hDispatch (extension % path % uri % request) (==)

{- | List dispatcher version of `hExtension`. -}

hExtensionRouter :: ListDispatcher (Maybe String) a
hExtensionRouter = hListDispatch hExtension