X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FResource%2FTrackBack.hs;h=df1f5c3f4e07a13cc114ca2c991d490ea4639660;hb=42f51754dea02201aececaacbf194d714cd58aaf;hp=ad367cd0f287fbb783d30356c153cf410d2665df;hpb=e85b652169f502cffe1f6f7f927d8990e9c11499;p=Rakka.git diff --git a/Rakka/Resource/TrackBack.hs b/Rakka/Resource/TrackBack.hs index ad367cd..df1f5c3 100644 --- a/Rakka/Resource/TrackBack.hs +++ b/Rakka/Resource/TrackBack.hs @@ -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,14 +74,17 @@ 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) validateTrackBack form = do let title = get' "title" excerpt = get' "excerpt" - blogName = get' "blogName" + blogName = get' "blog_name" case get' "url" of Nothing -> do outputResponse (Error 1 "Parameter `url' is missing.") @@ -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