{-# LANGUAGE FlexibleContexts #-} module Network.Salvia.Handler.Extension ( hExtension , hExtensionRouter ) where import Control.Category import Network.Protocol.Http import Network.Protocol.Uri import Network.Salvia.Handler.Dispatching import Network.Salvia.Interface import Prelude hiding ((.), id) {- | Request dispatcher based on the request path file extenstion. -} hExtension :: HttpM Request m => Dispatcher (Maybe String) m a hExtension = hRequestDispatch (extension . path . asUri) (==) {- | List dispatcher version of `hExtension`. -} hExtensionRouter :: HttpM Request m => ListDispatcher (Maybe String) m a hExtensionRouter = hListDispatch hExtension