packages feed

fb-persistent 0.1.4 → 0.2

raw patch · 2 files changed

+28/−10 lines, 2 filesdep +textdep ~fbPVP ok

version bump matches the API change (PVP)

Dependencies added: text

Dependency ranges changed: fb

API changes (from Hackage documentation)

Files

fb-persistent.cabal view
@@ -1,5 +1,5 @@ name:              fb-persistent-version:           0.1.4+version:           0.2 license:           BSD3 license-file:      LICENSE author:            Felipe Lessa@@ -31,7 +31,8 @@     Facebook.Persistent   build-depends:       base       >= 4     && < 5-    , fb         >= 0.7.1+    , fb         >= 0.13     , persistent >= 0.7   && < 1.1     , cereal     == 0.3.*     , time       == 1.4.*+    , text
src/Facebook/Persistent.hs view
@@ -17,11 +17,13 @@  import Control.Applicative ((<$>), (<*>)) import Data.String (fromString)+import Data.Text (Text) import Data.Int (Int64) import Data.Word (Word8) import Database.Persist import Facebook import qualified Data.Serialize as S+import qualified Data.Text.Encoding as TE import qualified Data.Time.Clock as T import qualified Data.Time.Clock.POSIX as T @@ -39,10 +41,13 @@   -- | From @fb-persistent@.  Since 0.1.2.+--+-- We use 'ByteString' for historical purposes in order to+-- maintain compatibility with @fb < 0.13@. instance PersistField Id where-    toPersistValue = toPersistValue . idCode-    fromPersistValue v = Id <$> fromPersistValue v-    sqlType = sqlType . idCode+    toPersistValue = toPersistValue . TE.encodeUtf8 . idCode+    fromPersistValue v = Id . TE.decodeUtf8 <$> fromPersistValue v+    sqlType = sqlType . TE.encodeUtf8 . idCode     isNullable _ = False  @@ -71,26 +76,38 @@ instance AccessTokenKind UserKind where   accessTokenPut (UserAccessToken uid token expires) = do     S.putWord8 0-    S.put uid-    S.put token+    putId uid+    putText token     putUTCTime expires   accessTokenGet = do     v <- S.getWord8     case v of-      0 -> UserAccessToken <$> S.get <*> S.get <*> getUTCTime+      0 -> UserAccessToken <$> getId <*> getText <*> getUTCTime       1 -> fail $ "fb-persistent: AccessToken: tried to decode an AppAccessToken as UserAccessToken."       _ -> accessTokenUnknownVersion v  instance AccessTokenKind AppKind where   accessTokenPut (AppAccessToken token) = do     S.putWord8 1-    S.put token+    putText token   accessTokenGet = do     v <- S.getWord8     case v of-      1 -> AppAccessToken <$> S.get+      1 -> AppAccessToken <$> getText       0 -> fail $ "fb-persistent: AccessToken: tried to decode an UserAccessToken as AppAccessToken."       _ -> accessTokenUnknownVersion v++getText :: S.Get Text+getText = TE.decodeUtf8 <$> S.get++putText :: Text -> S.Put+putText = S.put . TE.encodeUtf8++getId :: S.Get Id+getId = Id <$> getText++putId :: Id -> S.Put+putId = putText . idCode   putUTCTime :: T.UTCTime -> S.Put