import Control.Monad
import Control.Monad.Trans
import Data.Maybe
+import Network.HTTP.Lucu
import Rakka.Page
import Rakka.Storage.Impl
import Rakka.Storage.Types
import Subversion.Repository
import Text.HyperEstraier hiding (WriteLock)
-logger = "Rakka.Storage"
-
mkStorage :: FilePath -> Repository -> (Page -> IO Document) -> IO Storage
mkStorage lsdir repos mkDraft
getPage = ((liftIO .) .) . getPage' . stoRepository
-putPage :: MonadIO m => Storage -> Page -> RevNum -> m ()
-putPage sto page oldRev
- = error "FIXME: not implemented"
+putPage :: MonadIO m => Storage -> Page -> m StatusCode
+putPage sto page
+ = liftIO $ do st <- putPage' (stoRepository sto) page
+ syncIndex sto
+ return st
getPageA :: ArrowIO a => Storage -> a (PageName, Maybe RevNum) (Maybe Page)
getPageA = arrIO2 . getPage
-putPageA :: ArrowIO a => Storage -> a (Page, RevNum) ()
-putPageA = arrIO2 . putPage
+putPageA :: ArrowIO a => Storage -> a Page StatusCode
+putPageA = arrIO . putPage
searchPages :: MonadIO m => Storage -> Condition -> m [(PageName, RevNum)]