module Bein.Web.Pages.New where import Bein.Web.Types import Bein.Web.Commands import Happstack.Server import Database.HDBC import Control.Monad.Trans import Bein.Web.Pages.Login newObject :: BeinServerPart Response newObject = authenticated $ do newId <- path createObject newUrl <- fullUrl ("/" ++ show newId) seeOther newUrl (toResponse "Redirecting...") createObject :: String -> BeinServerPart Int createObject typeToCreate = asksUser >>= \user -> lift $ updateWithResponse "select new_object(?,?)" [toSql typeToCreate, toSql (uid user)] >>= \r -> case r of [] -> error "Did not receive value back from database in createObject!" [[newId]] -> return (fromSql newId) _ -> error "Received multiple rows from database in createObject!"