module Main where import Network.CGI import Network.CGI.Protocol (formDecode, cgiRequestBody) import VotesUtil import ParseVoteRecord import Control.Monad.Trans cgiDispatcher :: String -> CGI CGIResult --cgiDispatcher "list" = do types <- lift $ getAllBillsVoteTypes 2006 -- output $ show types --cgiDispatcher "score" = do formDecodeyear <- getInput "year" -- voteNums <- getMultiInput "num" -- voteRawVals <- getMultiInput "val" -- legScores <- lift $ legislatorScores (read $ maybe "???" id year) (zip (map (\x -> read x) voteNums) (map (\x -> read x) voteRawVals)) cgiDispatcher "score" = do year <- getInput "year" voteNums <- getMultiInput "num" voteRawVals <- getMultiInput "val" voteWeights <- getMultiInput "weight" legScores <- lift $ legislatorScores (read $ maybe "???" id year) (zip3 (map (\x -> read x) voteNums) (map (\x -> read x) voteRawVals) (map (\x -> read x) voteWeights)) setHeader "Content-Type" "text/xml" output $ legislatorScoresToXML legScores cgiDispatcher "interest" = do year <- getInput "year" ints <- lift $ getInterestInfo $ read $ maybe "???" id year setHeader "Content-Type" "text/xml" output $ interestVotesToXML ints cgiDispatcher "bills" = do year <- getInput "year" bills <- lift $ getAllBills $ read $ maybe "???" id year setHeader "Content-Type" "text/xml" output $ billsToXML bills cgiDispatcher "reps" = do year <- getInput "year" legs <- lift $ getLegisInfo $ read $ maybe "???" id year setHeader "Content-Type" "text/xml" output $ legisInfosToXML legs cgiDispatcher "years" = do years <- lift $ availableYears setHeader "Content-Type" "text/xml" output $ yearsToXML years cgiDispatcher _ = (output "beats me!") --cgiDispatcher :: String -> CGI CGIResult --cgiDispatcher _ = output "beats me!" --cgiDispatcher "list" = do types <- getAllBillsVoteTypes 2006 -- output (show types) cgiMain :: CGI CGIResult cgiMain = do action <- getInput "action" cgiDispatcher $ maybe "???" id action -- output $ maybe "???" id action main :: IO () main = runCGI (handleErrors cgiMain)