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 "

Scotty, ", beam, fS " me up!

"] 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")