packages feed

yesod-persistent 1.2.3 → 1.2.3.1

raw patch · 3 files changed

+49/−8 lines, 3 filesdep ~persistentdep ~persistent-templatePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: persistent, persistent-template

API changes (from Hackage documentation)

- Yesod.Persist.Core: DBRunner :: (forall a. YesodPersistBackend site (HandlerT site IO) a -> HandlerT site IO a) -> DBRunner site
+ Yesod.Persist.Core: DBRunner :: (forall a. YesodDB site a -> HandlerT site IO a) -> DBRunner site
- Yesod.Persist.Core: respondSourceDB :: YesodPersistRunner site => ContentType -> Source (YesodPersistBackend site (HandlerT site IO)) (Flush Builder) -> HandlerT site IO TypedContent
+ Yesod.Persist.Core: respondSourceDB :: YesodPersistRunner site => ContentType -> Source (YesodDB site) (Flush Builder) -> HandlerT site IO TypedContent
- Yesod.Persist.Core: runDB :: YesodPersist site => YesodPersistBackend site (HandlerT site IO) a -> HandlerT site IO a
+ Yesod.Persist.Core: runDB :: YesodPersist site => YesodDB site a -> HandlerT site IO a
- Yesod.Persist.Core: runDBRunner :: DBRunner site -> forall a. YesodPersistBackend site (HandlerT site IO) a -> HandlerT site IO a
+ Yesod.Persist.Core: runDBRunner :: DBRunner site -> forall a. YesodDB site a -> HandlerT site IO a
- Yesod.Persist.Core: runDBSource :: YesodPersistRunner site => Source (YesodPersistBackend site (HandlerT site IO)) a -> Source (HandlerT site IO) a
+ Yesod.Persist.Core: runDBSource :: YesodPersistRunner site => Source (YesodDB site) a -> Source (HandlerT site IO) a

Files

Yesod/Persist/Core.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RankNTypes #-} {-# OPTIONS_GHC -fno-warn-orphans #-}@@ -19,8 +20,10 @@     ) where  import Database.Persist+#if !MIN_VERSION_persistent(2, 0, 0) import Database.Persist.Sql (SqlPersistT, unSqlPersistT)-import Control.Monad.Trans.Reader (runReaderT)+#endif+import Control.Monad.Trans.Reader (ReaderT, runReaderT)  import Yesod.Core import Data.Conduit@@ -31,11 +34,25 @@ import Yesod.Core.Types (HandlerContents (HCError)) import qualified Database.Persist.Sql as SQL +#if MIN_VERSION_persistent(2, 0, 0)+unSqlPersistT :: a -> a+unSqlPersistT = id+#endif++#if MIN_VERSION_persistent(2, 0, 0)+type YesodDB site = ReaderT (YesodPersistBackend site) (HandlerT site IO)+#else type YesodDB site = YesodPersistBackend site (HandlerT site IO)+#endif +#if MIN_VERSION_persistent(2, 0, 0)+class Monad (YesodDB site) => YesodPersist site where+    type YesodPersistBackend site+#else class Monad (YesodPersistBackend site (HandlerT site IO)) => YesodPersist site where     type YesodPersistBackend site :: (* -> *) -> * -> *-    runDB :: YesodPersistBackend site (HandlerT site IO) a -> HandlerT site IO a+#endif+    runDB :: YesodDB site a -> HandlerT site IO a  -- | Helper for creating 'runDB'. --@@ -71,13 +88,17 @@     getDBRunner :: HandlerT site IO (DBRunner site, HandlerT site IO ())  newtype DBRunner site = DBRunner-    { runDBRunner :: forall a. YesodPersistBackend site (HandlerT site IO) a -> HandlerT site IO a+    { runDBRunner :: forall a. YesodDB site a -> HandlerT site IO a     }  -- | Helper for implementing 'getDBRunner'. -- -- Since 1.2.0+#if MIN_VERSION_persistent(2, 0, 0)+defaultGetDBRunner :: YesodPersistBackend site ~ SQL.SqlBackend+#else defaultGetDBRunner :: YesodPersistBackend site ~ SqlPersistT+#endif                    => (site -> Pool SQL.Connection)                    -> HandlerT site IO (DBRunner site, HandlerT site IO ()) defaultGetDBRunner getPool = do@@ -106,7 +127,7 @@ -- -- Since 1.2.0 runDBSource :: YesodPersistRunner site-            => Source (YesodPersistBackend site (HandlerT site IO)) a+            => Source (YesodDB site) a             -> Source (HandlerT site IO) a runDBSource src = do     (dbrunner, cleanup) <- lift getDBRunner@@ -116,11 +137,16 @@ -- | Extends 'respondSource' to create a streaming database response body. respondSourceDB :: YesodPersistRunner site                 => ContentType-                -> Source (YesodPersistBackend site (HandlerT site IO)) (Flush Builder)+                -> Source (YesodDB site) (Flush Builder)                 -> HandlerT site IO TypedContent respondSourceDB ctype = respondSource ctype . runDBSource  -- | Get the given entity by ID, or return a 404 not found if it doesn't exist.+#if MIN_VERSION_persistent(2, 0, 0)+get404 :: (MonadIO m, PersistStore (PersistEntityBackend val), PersistEntity val)+       => Key val+       -> ReaderT (PersistEntityBackend val) m val+#else get404 :: ( PersistStore (t m)           , PersistEntity val           , Monad (t m)@@ -129,6 +155,7 @@           , PersistMonadBackend (t m) ~ PersistEntityBackend val           )        => Key val -> t m val+#endif get404 key = do     mres <- get key     case mres of@@ -137,6 +164,11 @@  -- | Get the given entity by unique key, or return a 404 not found if it doesn't --   exist.+#if MIN_VERSION_persistent(2, 0, 0)+getBy404 :: (PersistUnique (PersistEntityBackend val), PersistEntity val, MonadIO m)+         => Unique val+         -> ReaderT (PersistEntityBackend val) m (Entity val)+#else getBy404 :: ( PersistUnique (t m)             , PersistEntity val             , m ~ HandlerT site IO@@ -145,6 +177,7 @@             , PersistEntityBackend val ~ PersistMonadBackend (t m)             )          => Unique val -> t m (Entity val)+#endif getBy404 key = do     mres <- getBy key     case mres of@@ -156,8 +189,10 @@ notFound' :: MonadIO m => m a notFound' = liftIO $ throwIO $ HCError NotFound +#if !MIN_VERSION_persistent(2, 0, 0) instance MonadHandler m => MonadHandler (SqlPersistT m) where     type HandlerSite (SqlPersistT m) = HandlerSite m     liftHandlerT = lift . liftHandlerT instance MonadWidget m => MonadWidget (SqlPersistT m) where     liftWidgetT = lift . liftWidgetT+#endif
test/Yesod/PersistSpec.hs view
@@ -1,5 +1,7 @@ {-# LANGUAGE OverloadedStrings, TemplateHaskell, QuasiQuotes, TypeFamilies #-} {-# LANGUAGE EmptyDataDecls, FlexibleContexts, GADTs #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE CPP #-} module Yesod.PersistSpec where  import Test.Hspec@@ -27,7 +29,11 @@  instance Yesod App instance YesodPersist App where+#if MIN_VERSION_persistent(2, 0, 0)+    type YesodPersistBackend App = SqlBackend+#else     type YesodPersistBackend App = SqlPersistT+#endif     runDB = defaultRunDB appConfig appPool instance YesodPersistRunner App where     getDBRunner = defaultGetDBRunner appPool
yesod-persistent.cabal view
@@ -1,5 +1,5 @@ name:            yesod-persistent-version:         1.2.3+version:         1.2.3.1 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -15,8 +15,8 @@ library     build-depends:   base                      >= 4        && < 5                    , yesod-core                >= 1.2.2    && < 1.3-                   , persistent                >= 1.2      && < 1.4-                   , persistent-template       >= 1.2      && < 1.4+                   , persistent                >= 1.2      && < 2.1+                   , persistent-template       >= 1.2      && < 2.1                    , transformers              >= 0.2.2                    , blaze-builder                    , conduit