scotty-test/src/Main.hs

46 rivejä
931 B
Haskell

module Main where
import Web.Scotty
import Data.Monoid (mconcat)
import Helpers
import Network.HTTP.Types.Status
import qualified Data.Text.Lazy as T
import Network.Wai
import Network.Wai.Middleware.RequestLogger
import Network.Wai.Middleware.HttpAuth
import qualified Data.ByteString as BS
import qualified Data.ByteString.UTF8 as U8
main :: IO ()
main = scotty 3000 $ do
middleware auth
middleware logging
get (fS "/foo") foo
get (fS "/:word") word_pattern
word_pattern :: ActionM ()
word_pattern = do
beam <- param (fS "word")
html $ mconcat [fS "<h1>Scotty, ", beam, fS " me up!</h1>"]
foo :: ActionM ()
foo = do
status ok200
text $ T.pack "Blah"
return ()
logging :: Middleware
logging = logStdout
auth :: Middleware
auth = basicAuth (\u p -> return $
u == U8.fromString "michael" &&
p == U8.fromString "mypass")
(fS "My Realm")