packages feed

clckwrks-0.13.2: Clckwrks/Admin/Route.hs

module Clckwrks.Admin.Route where

import Clckwrks
import Clckwrks.Admin.Console
import Clckwrks.Admin.URL
import Clckwrks.Admin.EditFeedConfig (editFeedConfig)
import Clckwrks.Admin.EditPage       (editPage)
import Clckwrks.Admin.EditSettings   (editSettings)
import Clckwrks.Admin.NewPage        (newPage)
import Clckwrks.Admin.PreviewPage    (previewPage)
import Clckwrks.Admin.Pages
import Clckwrks.Menu.Acid
import Clckwrks.Menu.Edit
import Clckwrks.Menu.Types

-- | routes for 'AdminURL'
routeAdmin :: AdminURL -> Clck ClckURL Response
routeAdmin url =
    case url of
      Console           -> nestURL Admin $ consolePage
      (EditPage pid)    -> editPage (Admin url) pid
      EditFeedConfig    -> editFeedConfig (Admin url)
      EditSettings      -> editSettings   (Admin url)
      NewPage           -> nestURL Admin $ newPage PlainPage
      (PreviewPage pid) -> previewPage pid -- FIXME
      NewPost           -> nestURL Admin $ newPage Post
      Pages             -> nestURL Admin $ pages
      EditMenu          ->
          do menu <- query AskMenu
             editMenu (menu :: Menu ClckURL)
      MenuPOST          -> menuPost