snaplet-oauth-0.0.5: src/Snap/Snaplet/OAuth.hs
{-# LANGUAGE OverloadedStrings #-}
module Snap.Snaplet.OAuth
( initOauthSnaplet
, module OA
, module HS
, module UT
, module TY ) where
import Data.ByteString (ByteString)
import Snap
import Network.OAuth2.OAuth2 as OA
import qualified Snap.Snaplet.OAuth.Google as G
import Snap.Snaplet.OAuth.Internal.Handlers as HS
import Snap.Snaplet.OAuth.Internal.Types as TY
import Snap.Snaplet.OAuth.Internal.Utils as UT
import qualified Snap.Snaplet.OAuth.Weibo as W
-------------------------------------------------------
-- | Init this OAuthSnaplet snaplet.
--
initOauthSnaplet :: HasOAuth b
=> Bool
-- ^ Add default routes or not
-> OAuthMap
-- ^ Oauth Keys
-> SnapletInit b OAuthSnaplet
initOauthSnaplet rt oauths =
makeSnaplet "OAuthSnaplet" "" Nothing $ do
when rt (addRoutes routes)
return $ emptyOAuthSnaplet { oauthKeys = oauths }
-- | Snap Handlers
-- ?? TODO: add routes per config [weibo, google, github]
--
routes :: HasOAuth b => [(ByteString, Handler b v ())]
routes = W.routes
<|>
G.routes