]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Resource/Render.hs
preview backend now fully works!
[Rakka.git] / Rakka / Resource / Render.hs
index 01c75e105091994cb43a1c30abb3ab1ff3640cff..670edd88273aef65dade948c1a6627a5d04fa73d 100644 (file)
@@ -14,6 +14,7 @@ import           Network.HTTP.Lucu
 import           Network.HTTP.Lucu.Utils
 import           Rakka.Environment
 import           Rakka.Page
+import           Rakka.Utils
 import           Rakka.Wiki
 import           Rakka.Wiki.Engine
 import           Rakka.Wiki.Parser
@@ -65,8 +66,12 @@ resRender env
 -}
 handleRender :: Environment -> PageName -> Resource ()
 handleRender env name
-    = do cType <- guessTypeIfNeeded =<< getContentType
-         bin   <- inputLBS defaultLimit
+    = do bin    <- inputLBS defaultLimit
+         cTypeM <- getContentType
+
+         let cType = case cTypeM of
+                       Just t  -> t
+                       Nothing -> guessMIMEType bin
 
          setContentType $ read "text/xml"
          [xmlStr] <- liftIO $ runX ( setErrorMsgHandler False fail
@@ -78,10 +83,6 @@ handleRender env name
                                      writeDocumentToString [ (a_indent, v_1) ]
                                    )
          output xmlStr
-    where
-      guessTypeIfNeeded :: Maybe MIMEType -> Resource MIMEType
-      guessTypeIfNeeded (Just t) = return t
-      guessTypeIfNeeded Nothing  = fail "not impl"
 
 
 render :: (ArrowXml a, ArrowChoice a, ArrowIO a) =>