{-# LANGUAGE OverloadedStrings #-} module Main where import Data.Text.Lazy (toStrict) import qualified Database.SQLite.Simple as Db import qualified Network.Wai.Middleware.RequestLogger as RequestLogger import qualified Network.Wai.Middleware.Static as Static import Text.Blaze.Html.Renderer.Text import Web.Spock.Safe (()) import qualified Web.Spock.Safe as S hiding (head) import qualified Within.DBMemorial.Post as Post import qualified Within.DBMemorial.User as User import qualified Within.DBMemorial.Views.Materialize as Materialize main :: IO () main = do conn <- Db.open "../db/posts.db" -- Simple tests to prove we're reading from SQLite r <- Db.query_ conn "SELECT * FROM Posts WHERE page=1" :: IO [Post.Post] let h = head r -- Set up the URL router S.runSpock 5000 $ S.spockT id $ do S.middleware $ Static.staticPolicy $ Static.addBase "public" S.middleware $ RequestLogger.logStdout S.get S.root $ S.html $ toStrict (renderHtml (Materialize.base "The OP" (Post.render h))) {-S.get ("users" S.var) $ \id -> S.text renderHtml $ User.render $ do res <- Db.query_ conn "SELECT * FROM Users WHERE id=?" id :: IO [User.User] head res-}