Main: show 404 page if path is not found

This commit is contained in:
Christine Dodrill 2015-07-30 09:09:00 -07:00
parent 0fa42c588c
commit d427db124f
1 changed files with 14 additions and 0 deletions

View File

@ -5,6 +5,8 @@ module Main where
import Control.Monad.IO.Class
import qualified Data.Map as Map
import Data.Text (Text)
import qualified Data.Text as Text
import qualified Database.SQLite.Simple as Db
import qualified Network.HTTP.Types.Status as Status
import qualified Network.Wai.Middleware.RequestLogger as RequestLogger
@ -35,6 +37,16 @@ main = do
S.middleware $ Static.staticPolicy $ Static.addBase "public"
S.middleware $ RequestLogger.logStdout
-- 404 handler
S.hookAny S.GET $ \(paths :: [Text]) ->
let slash = Text.pack "/"
path = Text.append slash $ Text.intercalate slash paths
message = "No such page at " ++ (Text.unpack path)
page = ErrorView.render message
title = "Page not found"
in S.html $ wrapMarkupStringTitle title page
-- Test routes
S.get S.root $
S.html $ wrapMarkup "The OP" (Post.render h user)
@ -63,3 +75,5 @@ main = do
page = Thread.render id_ posts userMap
S.html $ wrapMarkupStringTitle title page