yesod-pure-0.1.0.0: Yesod/Pure.hs
module Yesod.Pure
( module Yesod
, module Yesod.Pure
) where
import Yesod
import Data.Text (Text)
import Data.Text.Lazy.Builder (fromText)
import System.Log.FastLogger (Logger)
type RouteParse master = [Text] -> Maybe (Route master)
type RouteDispatch master = Text
-> Route master
-> Maybe (GHandler master master ChooseRep)
handler :: HasReps a
=> GHandler sub master a
-> Maybe (GHandler sub master ChooseRep)
handler = Just . fmap chooseRep
dispatch :: (YesodDispatch master master, Yesod master)
=> RouteParse master
-> RouteDispatch master
-> Logger
-> master
-> master
-> (Route master -> Route master)
-> (Maybe (SessionBackend master) -> Application)
-> (Route master -> Maybe (SessionBackend master) -> Application)
-> Text
-> [Text]
-> Maybe (SessionBackend master)
-> Application
dispatch parse dispatch' logger master sub toMaster on404 on405 method pieces session =
case parse pieces of
Just route ->
case dispatch' method route of
Just h -> yesodRunner logger h master sub (Just route) toMaster session
Nothing -> on405 route session
Nothing -> on404 session
addCSS :: Text -> GWidget sub master ()
addCSS = toWidget . const . CssBuilder . fromText