Skip to content

Commit 777261a

Browse files
authored
Merge pull request #39 from foxhound-systems/persistent-2.14-update
Add support for persistent-2.14 to serversession-backend-persistent
2 parents ae6c5e6 + ccef104 commit 777261a

File tree

2 files changed

+34
-21
lines changed

2 files changed

+34
-21
lines changed

serversession-backend-persistent/serversession-backend-persistent.cabal

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cabal-version: >= 1.10
22
name: serversession-backend-persistent
3-
version: 2.0.1
3+
version: 2.0.2
44
license: MIT
55
license-file: LICENSE
66
author: Felipe Lessa <[email protected]>
@@ -28,7 +28,7 @@ library
2828
, bytestring
2929
, cereal >= 0.4
3030
, path-pieces
31-
, persistent == 2.13.*
31+
, persistent >= 2.13.0.0 && < 2.15.0.0
3232
, tagged >= 0.7
3333
, text
3434
, time

serversession-backend-persistent/src/Web/ServerSession/Backend/Persistent/Internal/Impl.hs

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{-# LANGUAGE CPP #-}
12
-- | Internal module exposing the guts of the package. Use at
23
-- your own risk. No API stability guarantees apply.
34
module Web.ServerSession.Backend.Persistent.Internal.Impl
@@ -14,25 +15,26 @@ module Web.ServerSession.Backend.Persistent.Internal.Impl
1415
, throwSS
1516
) where
1617

17-
import Control.Applicative as A
18-
import Control.Monad (void)
19-
import Control.Monad.IO.Class (liftIO)
20-
import Data.Proxy (Proxy(..))
21-
import Data.Time (UTCTime)
22-
import Data.Typeable (Typeable)
23-
import Database.Persist (PersistEntity(..))
24-
import Web.PathPieces (PathPiece)
25-
import Web.ServerSession.Core
26-
27-
import qualified Control.Exception as E
28-
import qualified Data.Aeson as A
29-
import qualified Data.Text as T
30-
import qualified Database.Persist as P
31-
import qualified Database.Persist.EntityDef.Internal as P (EntityDef(..)) -- I need EntityDef constructor.
32-
import qualified Database.Persist.Quasi.Internal as P (UnboundEntityDef, unbindEntityDef)
33-
import qualified Database.Persist.Sql as P
34-
35-
import Web.ServerSession.Backend.Persistent.Internal.Types
18+
import Control.Applicative as A
19+
import Control.Monad (void)
20+
import Control.Monad.IO.Class (liftIO)
21+
import Data.Proxy (Proxy (..))
22+
import Data.Time (UTCTime)
23+
import Data.Typeable (Typeable)
24+
import Database.Persist (PersistEntity (..))
25+
import Web.PathPieces (PathPiece)
26+
import Web.ServerSession.Core
27+
28+
import qualified Control.Exception as E
29+
import qualified Data.Aeson as A
30+
import qualified Data.Text as T
31+
import qualified Database.Persist as P
32+
import qualified Database.Persist.EntityDef.Internal as P (EntityDef (..))
33+
import qualified Database.Persist.Quasi.Internal as P (UnboundEntityDef,
34+
unbindEntityDef)
35+
import qualified Database.Persist.Sql as P
36+
37+
import Web.ServerSession.Backend.Persistent.Internal.Types
3638

3739
-- We can't use the Template Haskell since we want to generalize
3840
-- some fields.
@@ -57,6 +59,9 @@ deriving instance Eq (Decomposed sess) => Eq (PersistentSession sess)
5759
deriving instance Ord (Decomposed sess) => Ord (PersistentSession sess)
5860
deriving instance Show (Decomposed sess) => Show (PersistentSession sess)
5961

62+
#if MIN_VERSION_persistent(2,14,0)
63+
instance P.SafeToInsert (PersistentSession sess)
64+
#endif
6065

6166
type PersistentSessionId sess = Key (PersistentSession sess)
6267

@@ -106,11 +111,19 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
106111
pfd = P.persistFieldDef
107112

108113
toPersistFields (PersistentSession a b c d e) =
114+
#if MIN_VERSION_persistent(2,14,0)
115+
[ P.toPersistValue a
116+
, P.toPersistValue b
117+
, P.toPersistValue c
118+
, P.toPersistValue d
119+
, P.toPersistValue e ]
120+
#else
109121
[ P.SomePersistField a
110122
, P.SomePersistField b
111123
, P.SomePersistField c
112124
, P.SomePersistField d
113125
, P.SomePersistField e ]
126+
#endif
114127

115128
fromPersistValues [a, b, c, d, e] =
116129
PersistentSession

0 commit comments

Comments
 (0)