{-# LANGUAGE OverloadedStrings #-} module Main where import qualified Data.ByteString as B import qualified Data.Map as M import Ketchup.Httpd import Ketchup.Routing import Ketchup.Utils import Ketchup.Chunked import Ketchup.Static handle hnd req params = sendReply hnd 200 [("Content-Type", ["text/html"])] response where response = B.concat ["
You requested ", url, "
"] url = uri req greet hnd req params = sendReply hnd 200 [("Content-Type", ["text/html"])] response where response = B.concat ["

Hi ", getName name, "!

"] getName (Just x) = x getName Nothing = "Anonymous" name = M.lookup "user" params chunked hnd req params = do chunkHeaders hnd 200 [("Content-Type",["text/plain"])] chunk hnd "PUTIFERIO" chunk hnd "AAAAAAAAAHHH" endchunk hnd post hnd req params = do print $ parseBody $ body req sendReply hnd 200 [("Content-Type", ["text/html"])] "OK!" router = route [ ("/" , handle ) , ("/greet/:user" , greet ) , ("/chunk" , chunked ) , ("/post" , post ) , ("/Ketchup/(.*)", useHandler $ static "." ) ] main = do listenHTTP "*" 8080 router