packages feed

antagonist-0.1.0.26: ironforge-yesod.hs

{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, MultiParamTypeClasses, OverloadedStrings #-}

import Game.Antisplice.Dungeon.Ironforge
import Web.Antagonist.Server
import Data.Chatty.AVL
import Data.IORef
import Text.Hamlet
import qualified Data.Text as T
import Yesod

data Master = Master { getSingleUserSub :: SingleUserSub }

mkYesod "Master" [parseRoutes|
/ HomeR GET
/su SubsiteR SingleUserSub getSingleUserSub
|]

instance Yesod Master
instance YesodAntagonist Master
instance RenderMessage Master FormMessage where
  renderMessage _ _ = defaultFormMessage

getHomeR :: HandlerT Master IO Html
getHomeR = defaultLayout $ do
  setTitle $ toHtml ("Antisplice-Web" :: T.Text)
  toWidget $ $(hamletFile "home.htm")

main = do
  ctrref <- newIORef 0
  avlref <- newIORef EmptyAVL
  warp 3000 $ Master $ SingleUserSub ctrref avlref ironforge