X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Rakka%2FResource%2FSystemConfig.hs;h=100fd1283b3d9e59223a5d952f4ec5bdde34f1cd;hb=88747f2;hp=beae8316994a2389baebba8d5236c9569a0fe589;hpb=52bafd675e7ac9d3fc9d3bf2d72e66a22efb6db9;p=Rakka.git diff --git a/Rakka/Resource/SystemConfig.hs b/Rakka/Resource/SystemConfig.hs index beae831..100fd12 100644 --- a/Rakka/Resource/SystemConfig.hs +++ b/Rakka/Resource/SystemConfig.hs @@ -2,16 +2,18 @@ module Rakka.Resource.SystemConfig ( resSystemConfig ) where - -import Control.Monad.Trans import Data.Maybe import Network.HTTP.Lucu import Rakka.Environment import Rakka.Resource import Rakka.SystemConfig -import Text.XML.HXT.Arrow +import Text.XML.HXT.XPath +-- FIXME: +-- GET /systemConfig ==> 全設定値を返す +-- GET /systemConfig/siteName ==> siteName を返す +-- PUT /systemConfig/siteName ==> siteName を設定 resSystemConfig :: Environment -> ResourceDef resSystemConfig env = ResourceDef { @@ -33,14 +35,9 @@ resSystemConfig env -} handleGet :: Environment -> Resource () handleGet env - = do setContentType $ read "text/xml" - [xmlStr] <- liftIO $ runX ( setErrorMsgHandler False fail - >>> - mkSystemConfigTree env - >>> - writeDocumentToString [ (a_indent, v_1) ] - ) - output xmlStr + = runIdempotentA' $ proc () + -> do tree <- mkSystemConfigTree env -< () + returnA -< outputXml tree mkSystemConfigTree :: (ArrowXml a, ArrowIO a) => Environment -> a b XmlTree