| CARVIEW |
Select Language
HTTP/2 200
server: nginx
date: Sun, 18 Jan 2026 01:58:23 GMT
content-type: application/octet-stream
content-length: 766
last-modified: Mon, 11 Jan 2021 21:17:27 GMT
module Main where
import Control.Applicative ((<$>), (<*>))
import Happstack.Server
( ServerPart, badRequest
, nullConf, ok, simpleHTTP)
import Happstack.Server.RqData
( RqData, checkRq
, getDataFn, look, lookRead)
data Vote = Yay | Nay
deriving (Eq, Ord, Read, Show, Enum, Bounded)
parseVote :: String -> Either String Vote
parseVote "yay" = Right Yay
parseVote "nay" = Right Nay
parseVote str =
Left $ "Expecting 'yay' or 'nay' but got: " ++ str
votePart :: ServerPart String
votePart =
do r <- getDataFn (look "vote" `checkRq` parseVote)
case r of
(Left e) ->
badRequest $ unlines e
(Right i) ->
ok $ "You voted: " ++ show i
main :: IO ()
main = simpleHTTP nullConf $ votePart