packages feed

fb 0.13.1 → 0.13.2

raw patch · 4 files changed

+44/−7 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Facebook: Friend :: UserId -> Text -> Friend
+ Facebook: data Friend
+ Facebook: friendId :: Friend -> UserId
+ Facebook: friendName :: Friend -> Text
+ Facebook: getUserFriends :: (MonadResource m, MonadBaseControl IO m) => UserId -> [Argument] -> UserAccessToken -> FacebookT anyAuth m (Pager Friend)

Files

fb.cabal view
@@ -1,5 +1,5 @@ name:              fb-version:           0.13.1+version:           0.13.2 license:           BSD3 license-file:      LICENSE author:            Felipe Lessa
src/Facebook.hs view
@@ -41,6 +41,8 @@     , getUser     , searchUsers     , getUserCheckins+    , Friend(..)+    , getUserFriends       -- ** Page     , Page(..)     , getPage
src/Facebook/Object/User.hs view
@@ -5,6 +5,8 @@     , getUser     , searchUsers     , getUserCheckins+    , Friend(..)+    , getUserFriends     ) where  import Control.Applicative@@ -109,3 +111,28 @@   -> FacebookT anyAuth m (Pager Checkin) getUserCheckins id_ query token =   getObject ("/" <> idCode id_ <> "/checkins") query (Just token)+++-- | A friend connection of a 'User'.+data Friend =+    Friend { friendId   :: UserId+           , friendName :: Text+           }+    deriving (Eq, Ord, Show, Read, Typeable)++instance A.FromJSON Friend where+    parseJSON (A.Object v) =+      Friend <$> v .: "id"+             <*> v .: "name"+    parseJSON _ = mzero+++-- | Get the list of friends of the given user.+getUserFriends ::+     (C.MonadResource m, MonadBaseControl IO m) =>+     UserId          -- ^ User ID or @\"me\"@.+  -> [Argument]      -- ^ Arguments to be passed to Facebook.+  -> UserAccessToken -- ^ User access token.+  -> FacebookT anyAuth m (Pager Friend)+getUserFriends id_ query token =+  getObject ("/" <> idCode id_ <> "/friends") query (Just token)
tests/Main.hs view
@@ -269,13 +269,21 @@       runAuth $         withTestUser D.def $ \testUser1 ->         withTestUser D.def $ \testUser2 -> do-            let Just tokenUserA = FB.incompleteTestUserAccessToken testUser1-            let Just tokenUserB = FB.incompleteTestUserAccessToken testUser2-            -- Create a friend connection between the new test users+            let Just tokenUser1 = FB.incompleteTestUserAccessToken testUser1+            let Just tokenUser2 = FB.incompleteTestUserAccessToken testUser2+            -- Check if the new test users' tokens are valid.+            FB.isValid tokenUser1 #?= True+            FB.isValid tokenUser2 #?= True+            -- Create a friend connection between the new test users.             FB.makeFriendConn testUser1 testUser2-            -- Check if the new test users' tokens are valid-            FB.isValid tokenUserA #?= True-            FB.isValid tokenUserB #?= True+            -- Verify that one is a friend of the other.+            user1 <- FB.getUser (FB.tuId testUser1) [] (Just tokenUser1)+            user2 <- FB.getUser (FB.tuId testUser2) [] (Just tokenUser2)+            friends1 <- FB.getUserFriends (FB.tuId testUser1) [] tokenUser1+            friends2 <- FB.getUserFriends (FB.tuId testUser2) [] tokenUser2+            FB.pagerData friends1 &?= [FB.Friend (FB.tuId testUser2) (M.fromJust (FB.userName user2))]+            FB.pagerData friends2 &?= [FB.Friend (FB.tuId testUser1) (M.fromJust (FB.userName user1))]+    describe' "getTestUsers" $ do     it "gets a list of test users" $ do