snaplet-oauth-0.0.6: example/src/Application.hs
{-# LANGUAGE TemplateHaskell #-}
------------------------------------------------------------------------------
-- | This module defines our application's state type and an alias for its
-- handler monad.
module Application where
------------------------------------------------------------------------------
import Data.Lens.Template
import Snap.Snaplet
import Snap.Snaplet.Auth
import Snap.Snaplet.Heist
import Snap.Snaplet.OAuth
import Snap.Snaplet.Session
------------------------------------------------------------------------------
data App = App
{ _heist :: Snaplet (Heist App)
, _sess :: Snaplet SessionManager
, _auth :: Snaplet (AuthManager App)
, _oauth :: Snaplet OAuthSnaplet
}
makeLens ''App
instance HasHeist App where
heistLens = subSnaplet heist
instance HasOAuth App where
oauthLens = oauth
------------------------------------------------------------------------------
type AppHandler = Handler App App