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