summaryrefslogtreecommitdiff
path: root/src/Main.hs
blob: 9fda84b1179df6a1c1311e13a9159991c4026f52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-}

import Network.CGI (runCGI, handleErrors, outputFPS, setHeader)
import Text.Blaze.Html.Renderer.Utf8 (renderHtml)
import Settlr.Config (withConfig, ScriptM)
import Settlr.Routes (loadRoute, Route(..))
import Settlr.Views.ErrorNotFound (viewErrorNotFound)
import Settlr.Views.Home (viewHome)
import Text.Blaze.Html5 (Html)

view :: Maybe Route -> ScriptM Html
view (Just RouteHome) = viewHome
view (Just RouteNew)  = viewErrorNotFound
view Nothing          = viewErrorNotFound

main :: IO ()
main = runCGI $ handleErrors $ withConfig $ do
         setHeader "Content-type" "text/html; charset=\"utf-8\""
         loadRoute >>= view >>= outputFPS . renderHtml