]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Resource/PageEntity.hs
partially implemented page updating
[Rakka.git] / Rakka / Resource / PageEntity.hs
index 4515a4d49e99eefd9b411b929cc20a21c4190d73..37c2aa8a85b9e8e914f5d388d4f923aa3d14122a 100644 (file)
@@ -52,10 +52,10 @@ handleGet env name
             Nothing
                 -> handlePageNotFound env -< name
 
-            Just redir@(Redirection _ _ _ _)
+            Just redir@(Redirection _ _ _ _ _)
                 -> handleRedirect env -< redir
 
-            Just entity@(Entity _ _ _ _ _ _ _ _ _ _ _ _ _ _)
+            Just entity@(Entity _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
                 -> handleGetEntity env -< entity
 
 {-
@@ -76,12 +76,12 @@ handleGetEntity env
           returnA -< do -- text/x-rakka の場合は、内容が動的に生成され
                         -- てゐる可能性があるので、ETag も
                         -- Last-Modified も返す事が出來ない。
-                        case pageType page of
+                        case entityType page of
                           MIMEType "text" "x-rakka" _
                               -> return ()
-                          _   -> case pageRevision page of
-                                   0   -> foundTimeStamp (pageLastMod page) -- 0 はデフォルトページ
-                                   rev -> foundEntity (strongETag $ show rev) (pageLastMod page)
+                          _   -> case entityRevision page of
+                                   0   -> foundTimeStamp (entityLastMod page) -- 0 はデフォルトページ
+                                   rev -> foundEntity (strongETag $ show rev) (entityLastMod page)
 
                         outputXmlPage tree (entityToXHTML env)
 
@@ -271,4 +271,6 @@ notFoundToXHTML env
 handlePut :: Environment -> PageName -> Resource ()
 handlePut env name
     = runXmlA env "rakka-page-1.0.rng" $ proc tree
-    -> returnA -< do setStatus Created
+    -> do page   <- parseXmlizedPage -< (name, tree)
+          status <- putPageA (envStorage env) -< page
+          returnA  -< setStatus status