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 , random >= 1.0.0.2
, text >= 0.7 , text >= 0.7
, mime-mail >= 0.3 , mime-mail >= 0.3
, yesod-persistent >= 1.1 , yesod-persistent >= 1.2
, hamlet >= 1.1 && < 1.2 , hamlet >= 1.1 && < 1.2
, shakespeare-css >= 1.0 && < 1.1 , shakespeare-css >= 1.0 && < 1.1
, shakespeare-js >= 1.0.2 && < 1.2 , shakespeare-js >= 1.0.2 && < 1.2
@ -32,8 +32,8 @@ library
, unordered-containers , unordered-containers
, yesod-form >= 1.3 && < 1.4 , yesod-form >= 1.3 && < 1.4
, transformers >= 0.2.2 , transformers >= 0.2.2
, persistent >= 1.1 && < 1.2 , persistent >= 1.2 && < 1.3
, persistent-template >= 1.1 && < 1.2 , persistent-template >= 1.2 && < 1.3
, SHA >= 1.4.1.3 , SHA >= 1.4.1.3
, http-conduit >= 1.5 , http-conduit >= 1.5
, aeson >= 0.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 (encodeUtf8, decodeUtf8With)
import Data.Text.Encoding.Error (lenientDecode) import Data.Text.Encoding.Error (lenientDecode)
import Network.URI (parseURI) import Network.URI (parseURI)
import Database.Persist (PersistField) import Database.Persist.Sql (PersistField, PersistFieldSql)
import Database.Persist.Store (Entity (..)) import Database.Persist (Entity (..))
import Text.HTML.SanitizeXSS (sanitizeBalance) import Text.HTML.SanitizeXSS (sanitizeBalance)
import Control.Monad (when, unless) import Control.Monad (when, unless)
import Data.Maybe (listToMaybe, fromMaybe) import Data.Maybe (listToMaybe, fromMaybe)
@ -70,8 +70,7 @@ import Data.Maybe (listToMaybe, fromMaybe)
import qualified Blaze.ByteString.Builder.Html.Utf8 as B import qualified Blaze.ByteString.Builder.Html.Utf8 as B
import Blaze.ByteString.Builder (writeByteString, toLazyByteString) import Blaze.ByteString.Builder (writeByteString, toLazyByteString)
import Blaze.ByteString.Builder.Internal.Write (fromWriteList) import Blaze.ByteString.Builder.Internal.Write (fromWriteList)
import Database.Persist.Store (PersistEntityBackend) import Database.Persist (PersistMonadBackend, PersistEntityBackend)
import Database.Persist.Store (PersistMonadBackend)
import Text.Blaze.Html.Renderer.String (renderHtml) import Text.Blaze.Html.Renderer.String (renderHtml)
import qualified Data.ByteString as S import qualified Data.ByteString as S
@ -164,7 +163,7 @@ $newline never
-- | A newtype wrapper around a 'Text' that converts newlines to HTML -- | A newtype wrapper around a 'Text' that converts newlines to HTML
-- br-tags. -- br-tags.
newtype Textarea = Textarea { unTextarea :: Text } newtype Textarea = Textarea { unTextarea :: Text }
deriving (Show, Read, Eq, PersistField, Ord) deriving (Show, Read, Eq, PersistField, PersistFieldSql, Ord)
instance ToHtml Textarea where instance ToHtml Textarea where
toHtml = toHtml =
unsafeByteString unsafeByteString

View File

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

View File

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

View File

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