]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Storage.hs
implemented page listing
[Rakka.git] / Rakka / Storage.hs
index 63480de03f44fd502136e39621e1da5017b0ae32..9ab15be2f1b88921e17810a9599a55e373d2808e 100644 (file)
@@ -5,9 +5,14 @@ module Rakka.Storage
 
     , getPage
     , putPage
+    , deletePage
 
     , getPageA
     , putPageA
+    , deletePageA
+
+    , getDirContents
+    , getDirContentsA
 
     , searchPages
 
@@ -45,9 +50,16 @@ getPage :: MonadIO m => Storage -> PageName -> Maybe RevNum -> m (Maybe Page)
 getPage = ((liftIO .) .) . getPage' . stoRepository
 
 
-putPage :: MonadIO m => Storage -> Page -> m StatusCode
-putPage sto page
-    = liftIO $ do st <- putPage' (stoRepository sto) page
+putPage :: MonadIO m => Storage -> Maybe String -> Page -> m StatusCode
+putPage sto userID page
+    = liftIO $ do st <- putPage' (stoRepository sto) userID page
+                  syncIndex sto
+                  return st
+
+
+deletePage :: MonadIO m => Storage -> Maybe String -> PageName -> m StatusCode
+deletePage sto userID name
+    = liftIO $ do st <- deletePage' (stoRepository sto) userID name
                   syncIndex sto
                   return st
 
@@ -56,8 +68,20 @@ getPageA :: ArrowIO a => Storage -> a (PageName, Maybe RevNum) (Maybe Page)
 getPageA = arrIO2 . getPage 
 
 
-putPageA :: ArrowIO a => Storage -> a Page StatusCode
-putPageA = arrIO . putPage
+putPageA :: ArrowIO a => Storage -> a (Maybe String, Page) StatusCode
+putPageA = arrIO2 . putPage
+
+
+deletePageA :: ArrowIO a => Storage -> a (Maybe String, PageName) StatusCode
+deletePageA = arrIO2 . deletePage
+
+
+getDirContents :: MonadIO m => Storage -> PageName -> Maybe RevNum -> m [PageName]
+getDirContents = ((liftIO .) .) . getDirContents' . stoRepository
+
+
+getDirContentsA :: ArrowIO a => Storage -> a (PageName, Maybe RevNum) [PageName]
+getDirContentsA = arrIO2 . getDirContents
 
 
 searchPages :: MonadIO m => Storage -> Condition -> m [(PageName, RevNum)]