Skip to content
This repository has been archived by the owner on Oct 20, 2022. It is now read-only.

Commit

Permalink
Add pagination to get followers feature
Browse files Browse the repository at this point in the history
  • Loading branch information
vergnesOL committed Feb 15, 2012
1 parent 5c12430 commit a15442e
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ public interface FriendOperations {

CursoredList<WeiboProfile> getFollowers(long uid);

CursoredList<WeiboProfile> getFollowers(long uid, int pageSize,
int pageNumber);

CursoredList<WeiboProfile> getFriends(long uid);

CursoredList<WeiboProfile> getFriends(long uid, int pageSize, int pageNumber);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,7 @@ private CursoredList<WeiboProfile> fetchUsersList(String url, long uid,
int pageSize, int pageNumber) {
requireAuthorization();
JsonNode dataNode = restTemplate.getForObject(
uriBuilder(url)
.queryParam("uid", String.valueOf(uid))
uriBuilder(url).queryParam("uid", String.valueOf(uid))
.queryParam("count", String.valueOf(pageSize))
.queryParam("cursor", String.valueOf(pageNumber))
.build(), JsonNode.class);
Expand All @@ -51,6 +50,13 @@ public CursoredList<WeiboProfile> getFollowers(long uid) {
return deserializeCursoredList(dataNode, WeiboProfile.class, "users");
}

@Override
public CursoredList<WeiboProfile> getFollowers(long uid, int pageSize,
int pageNumber) {
return fetchUsersList("friendships/followers.json", uid, pageSize,
pageNumber);
}

@Override
public CursoredList<WeiboProfile> getFriends(long uid) {
requireAuthorization();
Expand All @@ -63,6 +69,7 @@ public CursoredList<WeiboProfile> getFriends(long uid) {
@Override
public CursoredList<WeiboProfile> getFriends(long uid, int pageSize,
int pageNumber) {
return fetchUsersList("friendships/friends.json", uid, pageSize, pageNumber);
return fetchUsersList("friendships/friends.json", uid, pageSize,
pageNumber);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,27 @@ public void testGetFollowers() {
.andExpect(method(GET))
.andRespond(
withResponse(jsonResource("users"), responseHeaders));
CursoredList<WeiboProfile> friends = friendTemplate.getFollowers(uid);
assertEquals(2, friends.size());
assertEquals(650, friends.getTotalNumber());
assertEquals(0, friends.getPreviousCursor());
assertEquals(1, friends.getNextCursor());
CursoredList<WeiboProfile> users = friendTemplate.getFollowers(uid);
assertEquals(2, users.size());
assertEquals(650, users.getTotalNumber());
assertEquals(0, users.getPreviousCursor());
assertEquals(1, users.getNextCursor());
}

@Test
public void testGetFollowersPagination() {
long uid = 123L;
mockServer
.expect(requestTo("https://api.weibo.com/2/friendships/followers.json?uid=123&count=20&cursor=5"))
.andExpect(method(GET))
.andRespond(
withResponse(jsonResource("users"), responseHeaders));
CursoredList<WeiboProfile> users = friendTemplate.getFollowers(uid, 20,
5);
assertEquals(2, users.size());
assertEquals(650, users.getTotalNumber());
assertEquals(0, users.getPreviousCursor());
assertEquals(1, users.getNextCursor());
}

}

0 comments on commit a15442e

Please sign in to comment.