packages feed

lucienne-0.0.1: Lucienne/Controller/Imports.hs

{-| This is a utility module to avoid writing cumbersome import 
  statements of common modules in every controller. 
-}
module Lucienne.Controller.Imports
  ( stringSUri, withData
    -- Control.Monad
  , mzero
    -- Control.Monad.Trans
  , lift
    -- Happstack.Server
  , Response, toResponse, ok, badRequest
    -- Happstack.Server.RqData
  , RqData, look
    -- Lucienne.Controller
  , Controller
    -- Lucienne.Controller.Util
  , decodeBody, seeHome, seeHomeWith, seeOther, seeFeed, lookParameter, readParameter
    -- Lucienne.Controller.Message
  , Message (..), getMessages, withMessage                                                                        
    -- Lucienne.Model.User
  , User
    -- Lucienne.Model.Util
  , readObjectId, showObjectId
  )
where

import Control.Monad (mzero)
import Control.Monad.Trans (lift)
import Happstack.Server (Response,toResponse,ok,badRequest)
import Happstack.Server.RqData (RqData,look)
import Happstack.Server.SURI (SURI,toSURI)
import Lucienne.Controller (Controller)
import Lucienne.Controller.Util 
  (decodeBody,seeHome,seeHomeWith,seeOther,seeFeed,lookParameter,readParameter)
import Lucienne.Controller.Message (Message(..), getMessages, withMessage)
import Lucienne.Model.User (User)
import Lucienne.Model.Util (readObjectId,showObjectId)

import qualified Happstack.Server.RqData as Rq

stringSUri :: String -> SURI
stringSUri = toSURI

withData :: RqData a -> (Either [String] a -> Controller b) -> Controller b
withData rqData f = Rq.getDataFn rqData >>= f