Persistent 1.2
This commit is contained in:
parent
04d51bdb4c
commit
28e7a9db23
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user