module Yesod.Auth.DeskCom.Data where

import Control.Applicative ((<$>))
import Yesod.Core
import qualified Crypto.Random.AESCtr as CPRNG
import qualified Data.IORef as I

-- | Data type for @yesod-auth-deskCom@\'s subsite.
data DeskCom = DeskCom { deskComCprngVar :: I.IORef CPRNG.AESRNG }


-- | Initialize the 'DeskCom' subsite with a fresh CPRNG.
initDeskCom :: IO DeskCom
initDeskCom = DeskCom <$> (I.newIORef =<< CPRNG.makeSystem)


mkYesodSubData "DeskCom" [parseRoutes|
  /  DeskComLoginR GET
  /m DeskComMaybeLoginR GET
|]