1
+ {-# LANGUAGE CPP #-}
1
2
-- | Internal module exposing the guts of the package. Use at
2
3
-- your own risk. No API stability guarantees apply.
3
4
module Web.ServerSession.Backend.Persistent.Internal.Impl
@@ -14,25 +15,26 @@ module Web.ServerSession.Backend.Persistent.Internal.Impl
14
15
, throwSS
15
16
) where
16
17
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
36
38
37
39
-- We can't use the Template Haskell since we want to generalize
38
40
-- some fields.
@@ -57,6 +59,9 @@ deriving instance Eq (Decomposed sess) => Eq (PersistentSession sess)
57
59
deriving instance Ord (Decomposed sess ) => Ord (PersistentSession sess )
58
60
deriving instance Show (Decomposed sess ) => Show (PersistentSession sess )
59
61
62
+ #if MIN_VERSION_persistent(2,14,0)
63
+ instance P. SafeToInsert (PersistentSession sess )
64
+ #endif
60
65
61
66
type PersistentSessionId sess = Key (PersistentSession sess )
62
67
@@ -106,11 +111,19 @@ instance forall sess. P.PersistFieldSql (Decomposed sess) => P.PersistEntity (Pe
106
111
pfd = P.persistFieldDef
107
112
108
113
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
109
121
[ P. SomePersistField a
110
122
, P. SomePersistField b
111
123
, P. SomePersistField c
112
124
, P. SomePersistField d
113
125
, P. SomePersistField e ]
126
+ #endif
114
127
115
128
fromPersistValues [a, b, c, d, e] =
116
129
PersistentSession
0 commit comments