packages feed

corebot-bliki-0.2: src/Yesod/CoreBot/Bliki/Resources/Base.hs

module Yesod.CoreBot.Bliki.Resources.Base ( module Yesod.CoreBot.Bliki.Resources.Base
                                          ) where

import Yesod.CoreBot.Bliki.Prelude

import Yesod.CoreBot.Bliki.Config
import Yesod.CoreBot.Bliki.DB
import Yesod.CoreBot.Bliki.Store

import Control.Concurrent
import Control.Monad.Reader.Class

import qualified Data.Text as Text

mkYesodSubData "Data_ master" [] [parseRoutes|
/latest                     LatestR      GET
/                           UpdateLogR   GET
/entry/*Texts               EntryLatestR GET
/blog/#RevisionId           BlogR        GET 
/rev/#RevisionId/*Texts     EntryRevR    GET
|]

mkYesodSubData "Blog_ master" [] [parseRoutes|
/         BlogIndexR       GET
|]

mkYesodSubData "Wiki_ master" [] [parseRoutes|
/*Texts  WikiIndexR GET
|]

mkYesodSubData "Static" [] [parseRoutes|
/#String  FileR GET
|]

revision_blog_URL :: ConfigM master m
                  => RevisionId 
                  -> m String
revision_blog_URL rev_ID = do
    config :: Config master <- ask
    let base_URL = approot $ site config
        rev_blog_R = data_routes config $ BlogR rev_ID
    return $ Text.unpack $ render_absolute_URL base_URL rev_blog_R
        
    
entry_at_rev_URL :: ConfigM master m
                 => String 
                 -> RevisionId 
                 -> m String
entry_at_rev_URL entry_path rev_ID = do
    config :: Config master <- ask
    let base_URL = approot $ site config
        entry_rev_R = data_routes config $ EntryRevR rev_ID [ Text.pack entry_path ]
    return $ Text.unpack $ render_absolute_URL base_URL entry_rev_R