summaryrefslogtreecommitdiff
path: root/src/server/PGFService.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/PGFService.hs')
-rw-r--r--src/server/PGFService.hs7
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