]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Resource/Object.hs
redirection
[Rakka.git] / Rakka / Resource / Object.hs
index a18a268cb3504dc55badca12134cdf5883d02ed7..00ebc28e140a622e9d7560e66fb52afc7810adfa 100644 (file)
@@ -1,3 +1,4 @@
+-- -*- Coding: utf-8 -*-
 module Rakka.Resource.Object
     ( resObject
     )
@@ -11,7 +12,6 @@ import           Rakka.Environment
 import           Rakka.Page
 import           Rakka.Storage
 import           Rakka.SystemConfig
-import           System.Time
 
 
 resObject :: Environment -> ResourceDef
@@ -37,11 +37,11 @@ handleGet env name
            Nothing
                -> foundNoEntity Nothing
 
-           Just redir@(Redirection _ _ _ _)
+           Just redir@(Redirection _ _ _ _ _)
                -> handleRedirect env redir
 
-           Just entity@(Entity _ _ _ _ _ _ _ _ _ _ _ _ _ _)
-               -> handleGetEntity env entity
+           Just entity@(Entity _ _ _ _ _ _ _ _ _ _ _ _ _ _ _)
+               -> handleGetEntity entity
 
 
 {-
@@ -60,15 +60,13 @@ handleRedirect env redir
   
   ...
 -}
-handleGetEntity :: Environment -> Page -> Resource ()
-handleGetEntity env page
-    = do let lastMod = toClockTime $ pageLastMod page
+handleGetEntity :: Page -> Resource ()
+handleGetEntity page
+    = do case entityRevision page of
+           0   -> foundTimeStamp (entityLastMod page) -- 0 はデフォルトページ
+           rev -> foundEntity (strongETag $ show rev) (entityLastMod page)
 
-         case pageRevision page of
-           0   -> foundTimeStamp lastMod -- 0 はデフォルトページ
-           rev -> foundEntity (strongETag $ show rev) lastMod
-
-         setContentType (pageType page)
+         setContentType (entityType page)
          setHeader (C8.pack "Content-Disposition")
-                       (C8.pack $ "attachment; filename=" ++ quoteStr (pageFileName' page))
-         outputLBS (pageContent page)
+                       (C8.pack $ "attachment; filename=" ++ quoteStr (entityFileName' page))
+         outputLBS (entityContent page)