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 +1/−1
- src/Facebook.hs +2/−0
- src/Facebook/Object/User.hs +27/−0
- tests/Main.hs +14/−6
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