fb 0.14.11 → 0.15.0
raw patch · 3 files changed
+26/−23 lines, 3 filesdep ~aesondep ~attoparsecdep ~crypto-api
Dependency ranges changed: aeson, attoparsec, crypto-api, http-conduit, text
Files
- fb.cabal +6/−6
- src/Facebook/Base.hs +16/−15
- src/Facebook/RealTime.hs +4/−2
fb.cabal view
@@ -1,5 +1,5 @@ name: fb-version: 0.14.11+version: 0.15.0 license: BSD3 license-file: LICENSE author: Felipe Lessa@@ -65,7 +65,7 @@ base >= 4 && < 5 , lifted-base >= 0.1 && < 0.3 , bytestring >= 0.9 && < 0.11- , text == 0.11.*+ , text >= 0.11 && < 1.2 , transformers >= 0.2 && < 0.4 , transformers-base , monad-control@@ -73,17 +73,17 @@ , conduit == 1.0.* , data-default , http-types- , http-conduit == 1.9.*- , attoparsec == 0.10.*+ , http-conduit == 2.0.*+ , attoparsec == 0.11.* , attoparsec-conduit == 1.0.* , unordered-containers- , aeson >= 0.5 && < 0.7+ , aeson >= 0.5 && < 0.8 , base16-bytestring >= 0.1 , base64-bytestring >= 0.1.1 , time >= 1.2 && < 1.5 , old-locale , cereal >= 0.3 && < 0.5- , crypto-api >= 0.11 && < 0.13+ , crypto-api >= 0.11 && < 0.14 , cryptohash >= 0.7 , cryptohash-cryptoapi == 0.1.* , monad-logger >= 0.3
src/Facebook/Base.hs view
@@ -15,6 +15,7 @@ import Control.Monad (mzero) import Control.Monad.IO.Class (MonadIO) import Data.ByteString.Char8 (ByteString)+import Data.Default (def) import Data.Text (Text) import Data.Typeable (Typeable) @@ -44,27 +45,27 @@ -- | A plain 'H.Request' to a Facebook API. Use this instead of--- 'H.def' when creating new 'H.Request'@s@ for Facebook.+-- 'def' when creating new 'H.Request'@s@ for Facebook. fbreq :: Monad m => Text -- ^ Path. -> Maybe (AccessToken anyKind) -- ^ Access token. -> HT.SimpleQuery -- ^ Parameters.- -> FacebookT anyAuth m (H.Request n)+ -> FacebookT anyAuth m H.Request fbreq path mtoken query = withTier $ \tier -> let host = case tier of Production -> "graph.facebook.com" Beta -> "graph.beta.facebook.com"- in H.def { H.secure = True- , H.host = host- , H.port = 443- , H.path = TE.encodeUtf8 path- , H.redirectCount = 3- , H.queryString =- HT.renderSimpleQuery False $- maybe id tsq mtoken query- , H.responseTimeout = Just 120000000 -- 2 minutes- }+ in def { H.secure = True+ , H.host = host+ , H.port = 443+ , H.path = TE.encodeUtf8 path+ , H.redirectCount = 3+ , H.queryString =+ HT.renderSimpleQuery False $+ maybe id tsq mtoken query+ , H.responseTimeout = Just 120000000 -- 2 minutes+ } -- | Internal class for types that may be passed on queries to@@ -140,7 +141,7 @@ -- | Same as 'H.http', but tries to parse errors and throw -- meaningful 'FacebookException'@s@. fbhttp :: (MonadBaseControl IO m, C.MonadResource m) =>- H.Request m+ H.Request -> FacebookT anyAuth m (H.Response (C.ResumableSource m ByteString)) fbhttp req = do manager <- getManager@@ -148,7 +149,7 @@ fbhttpHelper :: (MonadBaseControl IO m, C.MonadResource m) => H.Manager- -> H.Request m+ -> H.Request -> m (H.Response (C.ResumableSource m ByteString)) fbhttpHelper manager req = do let req' = req { H.checkStatus = \_ _ _ -> Nothing }@@ -192,7 +193,7 @@ -- | Send a @HEAD@ request just to see if the resposne status -- code is 2XX (returns @True@) or not (returns @False@). httpCheck :: (MonadBaseControl IO m, C.MonadResource m) =>- H.Request (C.ResourceT m)+ H.Request -> FacebookT anyAuth m Bool httpCheck req = runResourceInFb $ do
src/Facebook/RealTime.hs view
@@ -19,6 +19,7 @@ import Crypto.Hash.CryptoAPI (SHA1) import Data.ByteString.Char8 (ByteString) import Data.Text (Text)+import Data.Text.Encoding (encodeUtf8) import Data.Typeable (Typeable) import qualified Crypto.Classes as Crypto@@ -140,7 +141,7 @@ RealTimeUpdateSubscription <$> v A..: "object" <*> v A..: "callback_url"- <*> v A..: "fields"+ <*> fmap (map encodeUtf8) (v A..: "fields") <*> v A..: "active" parseJSON _ = mzero @@ -234,6 +235,7 @@ parseJSON (A.Object v) = RealTimeUpdateNotificationUserEntry <$> v A..: "uid"- <*> v A..: "changed_fields"+ <*> fmap (map encodeUtf8) (v A..: "changed_fields") <*> v A..: "time"+ parseJSON _ = mzero