diff options
Diffstat (limited to 'src/server/PGFService.hs')
| -rw-r--r-- | src/server/PGFService.hs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/PGFService.hs b/src/server/PGFService.hs index ed19541f1..ee83394da 100644 --- a/src/server/PGFService.hs +++ b/src/server/PGFService.hs @@ -51,11 +51,12 @@ cgiMain' cache path = do pgf <- liftIO $ readCache cache path command <- liftM (maybe "grammar" (urlDecodeUnicode . UTF8.decodeString)) (getInput "command") - pgfMain pgf command + pgfMain path pgf command -pgfMain :: PGF -> String -> CGI CGIResult -pgfMain pgf command = +pgfMain :: FilePath -> PGF -> String -> CGI CGIResult +pgfMain path pgf command = case command of + "download" -> outputBinary =<< liftIO (BS.readFile path) "parse" -> outputJSONP =<< doParse pgf `fmap` getText `ap` getCat `ap` getFrom `ap` getLimit "complete" -> outputJSONP =<< doComplete pgf `fmap` getText `ap` getCat `ap` getFrom `ap` getLimit "linearize" -> outputJSONP =<< doLinearize pgf `fmap` getTree `ap` getTo |
