forked from yesodweb/wai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
lazy-test.hs
31 lines (26 loc) · 870 Bytes
/
lazy-test.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{-# LANGUAGE Rank2Types #-}
import Network.Wai
import Network.Wai.Enumerator
import qualified Network.Wai.Source as Source
import Network.Wai.Handler.SimpleServer
import qualified Data.ByteString.Char8 as B8
main :: IO ()
main = putStrLn "http://localhost:3000/" >> run 3000 app
app :: Application
app req = case B8.unpack $ pathInfo req of
"/post/" -> postResponse $ requestBody req
_ -> indexResponse
indexResponse :: IO Response
indexResponse = return Response
{ status = Status200
, responseHeaders = [(ContentType, B8.pack "text/html")]
, responseBody = index
}
postResponse :: Source -> IO Response
postResponse rb = return Response
{ status = Status200
, responseHeaders = [(ContentType, B8.pack "text/plain")]
, responseBody = Right $ fromLBS' $ Source.toLBS rb
}
index :: Either FilePath a
index = Left "index.html"