Persistent 1.2

This commit is contained in:
Michael Snoyman 2013-04-03 09:06:13 +03:00
parent 04d51bdb4c
commit 28e7a9db23
5 changed files with 22 additions and 24 deletions

View File

@ -24,7 +24,7 @@ library
, random >= 1.0.0.2
, text >= 0.7
, mime-mail >= 0.3
, yesod-persistent >= 1.1
, yesod-persistent >= 1.2
, hamlet >= 1.1 && < 1.2
, shakespeare-css >= 1.0 && < 1.1
, shakespeare-js >= 1.0.2 && < 1.2
@ -32,8 +32,8 @@ library
, unordered-containers
, yesod-form >= 1.3 && < 1.4
, transformers >= 0.2.2
, persistent >= 1.1 && < 1.2
, persistent-template >= 1.1 && < 1.2
, persistent >= 1.2 && < 1.3
, persistent-template >= 1.2 && < 1.3
, SHA >= 1.4.1.3
, http-conduit >= 1.5
, aeson >= 0.5

View File

@ -61,8 +61,8 @@ import qualified Text.Email.Validate as Email
import Data.Text.Encoding (encodeUtf8, decodeUtf8With)
import Data.Text.Encoding.Error (lenientDecode)
import Network.URI (parseURI)
import Database.Persist (PersistField)
import Database.Persist.Store (Entity (..))
import Database.Persist.Sql (PersistField, PersistFieldSql)
import Database.Persist (Entity (..))
import Text.HTML.SanitizeXSS (sanitizeBalance)
import Control.Monad (when, unless)
import Data.Maybe (listToMaybe, fromMaybe)
@ -70,8 +70,7 @@ import Data.Maybe (listToMaybe, fromMaybe)
import qualified Blaze.ByteString.Builder.Html.Utf8 as B
import Blaze.ByteString.Builder (writeByteString, toLazyByteString)
import Blaze.ByteString.Builder.Internal.Write (fromWriteList)
import Database.Persist.Store (PersistEntityBackend)
import Database.Persist.Store (PersistMonadBackend)
import Database.Persist (PersistMonadBackend, PersistEntityBackend)
import Text.Blaze.Html.Renderer.String (renderHtml)
import qualified Data.ByteString as S
@ -164,7 +163,7 @@ $newline never
-- | A newtype wrapper around a 'Text' that converts newlines to HTML
-- br-tags.
newtype Textarea = Textarea { unTextarea :: Text }
deriving (Show, Read, Eq, PersistField, Ord)
deriving (Show, Read, Eq, PersistField, PersistFieldSql, Ord)
instance ToHtml Textarea where
toHtml =
unsafeByteString

View File

@ -20,7 +20,7 @@ library
, hamlet >= 1.1 && < 1.2
, shakespeare-css >= 1.0 && < 1.1
, shakespeare-js >= 1.0.2 && < 1.2
, persistent >= 1.0 && < 1.2
, persistent >= 1.2 && < 1.3
, template-haskell
, transformers >= 0.2.2
, data-default

View File

@ -18,9 +18,8 @@ module Yesod.Persist
) where
import Database.Persist
import Database.Persist.Store
import Database.Persist.TH
import Database.Persist.GenericSql (SqlPersist, unSqlPersist)
import Database.Persist.Sql (SqlPersistT, unSqlPersistT)
import Control.Monad.Trans.Reader (runReaderT)
import Yesod.Core
@ -29,7 +28,7 @@ import Blaze.ByteString.Builder (Builder)
import Data.IORef.Lifted
import Data.Conduit.Pool
import Control.Monad.Trans.Resource
import qualified Database.Persist.GenericSql.Internal as SQL
import qualified Database.Persist.Sql as SQL
type YesodDB site = YesodPersistBackend site (HandlerT site IO)
@ -47,7 +46,7 @@ defaultRunDB :: PersistConfig c
-> HandlerT site IO a
defaultRunDB getConfig getPool f = do
master <- getYesod
Database.Persist.Store.runPool
Database.Persist.runPool
(getConfig master)
f
(getPool master)
@ -77,7 +76,7 @@ newtype DBRunner site = DBRunner
-- | Helper for implementing 'getDBRunner'.
--
-- Since 1.2.0
defaultGetDBRunner :: YesodPersistBackend site ~ SqlPersist
defaultGetDBRunner :: YesodPersistBackend site ~ SqlPersistT
=> (site -> Pool SQL.Connection)
-> HandlerT site IO (DBRunner site, HandlerT site IO ())
defaultGetDBRunner getPool = do
@ -87,12 +86,12 @@ defaultGetDBRunner getPool = do
managedConn <- takeResource pool
let conn = mrValue managedConn
let withPrep f = f conn (SQL.prepare conn)
(finishTransaction, ()) <- allocate (withPrep SQL.begin) $ \() -> do
let withPrep f = f conn (SQL.connPrepare conn)
(finishTransaction, ()) <- allocate (withPrep SQL.connBegin) $ \() -> do
didSucceed <- readIORef ididSucceed
withPrep $ if didSucceed
then SQL.commitC
else SQL.rollbackC
then SQL.connCommit
else SQL.connRollback
let cleanup = do
writeIORef ididSucceed True
@ -100,7 +99,7 @@ defaultGetDBRunner getPool = do
mrReuse managedConn True
mrRelease managedConn
return (DBRunner $ \x -> runReaderT (unSqlPersist x) conn, cleanup)
return (DBRunner $ \x -> runReaderT (unSqlPersistT x) conn, cleanup)
-- | Like 'runDB', but transforms a @Source@. See 'respondSourceDB' for an
-- example, practical use case.
@ -152,8 +151,8 @@ getBy404 key = do
Nothing -> lift notFound
Just res -> return res
instance MonadHandler m => MonadHandler (SqlPersist m) where
type HandlerSite (SqlPersist m) = HandlerSite m
instance MonadHandler m => MonadHandler (SqlPersistT m) where
type HandlerSite (SqlPersistT m) = HandlerSite m
liftHandlerT = lift . liftHandlerT
instance MonadWidget m => MonadWidget (SqlPersist m) where
instance MonadWidget m => MonadWidget (SqlPersistT m) where
liftWidgetT = lift . liftWidgetT

View File

@ -15,8 +15,8 @@ description: Some helpers for using Persistent from Yesod.
library
build-depends: base >= 4 && < 5
, yesod-core >= 1.2 && < 1.3
, persistent >= 1.1 && < 1.2
, persistent-template >= 1.1 && < 1.2
, persistent >= 1.2 && < 1.3
, persistent-template >= 1.2 && < 1.3
, transformers >= 0.2.2 && < 0.4
, blaze-builder
, conduit