From 2254b3403d1573ba7a089ac1014dce149af8ccba Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Mon, 18 Mar 2013 14:16:05 +0200 Subject: [PATCH] lite demo --- demo/lite/lite.hs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 demo/lite/lite.hs diff --git a/demo/lite/lite.hs b/demo/lite/lite.hs new file mode 100644 index 00000000..6c32d0e6 --- /dev/null +++ b/demo/lite/lite.hs @@ -0,0 +1,21 @@ +{-# LANGUAGE OverloadedStrings #-} +import Yesod.Core +import Data.Aeson +import Data.Monoid ((<>)) +import Data.Text (Text, pack) + +people :: [(Text, Int)] +people = [("Alice", 25), ("Bob", 43), ("Charlie", 37)] + +main = warp 3000 $ + onStatic "people" (dispatchTo getPeople) <> + onStatic "person" (withDynamic $ dispatchTo . getPerson) + +getPeople = return $ toJSON $ map fst people + +getPerson name = + case lookup name people of + Nothing -> notFound + Just age -> selectRep $ do + provideRep $ return $ object ["name" .= name, "age" .= age] + provideRep $ return $ name <> " is " <> pack (show age) <> " years old"