]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Resource/TrackBack.hs
Resurrection from bitrot
[Rakka.git] / Rakka / Resource / TrackBack.hs
index a9b364a56891349d4dc5daa943aaffd5ee64b909..df1f5c3f4e07a13cc114ca2c991d490ea4639660 100644 (file)
@@ -13,7 +13,7 @@ import           Data.Time
 import           Network.Browser
 import           Network.HTTP
 import           Network.HTTP.Lucu
-import           Network.HTTP.Lucu.Utils
+import           Network.HTTP.Lucu.Response
 import           Network.URI
 import           Rakka.Environment
 import           Rakka.Page
@@ -46,7 +46,7 @@ resTrackBack env
       }
     where
       toPageName :: [String] -> PageName
-      toPageName = decodePageName . joinWith "/"
+      toPageName = UTF8.decodeString . joinPath
 
 
 handlePost :: Environment -> PageName -> Resource ()
@@ -74,7 +74,10 @@ handlePost env name
           | otherwise
               = do tbListM <- return . fromMaybe [] =<< getAttachment (envStorage env) (pageName page) "trackbacks" Nothing
                    st      <- putAttachment (envStorage env) Nothing Nothing (pageName page) "trackbacks" (tbParam : tbListM)
-                   setStatus st
+                   if isSuccessful st then
+                       outputResponse NoError
+                     else
+                       setStatus st
 
 
 validateTrackBack :: [(String, String)] -> Resource (Maybe TrackBack)
@@ -112,9 +115,11 @@ outputResponse res
                                      >>>
                                      mkResponseTree
                                      >>>
-                                     writeDocumentToString [ (a_indent, v_1) ]
+                                     writeDocumentToString [ (a_indent         , v_1 )
+                                                           , (a_output_encoding, utf8)
+                                                           , (a_no_xml_pi      , v_0 ) ]
                                    )
-         output xmlStr
+         output $ UTF8.encodeString xmlStr
     where
       mkResponseTree :: ArrowXml a => a b XmlTree
       mkResponseTree