Skip to content

Commit cb4da1e

Browse files
authored
Add cursor parameter to reactions.list API method (#997)
1 parent ec509ad commit cb4da1e

File tree

5 files changed

+34
-4
lines changed

5 files changed

+34
-4
lines changed

json-logs/samples/api/reactions.list.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,8 +1061,7 @@
10611061
"reply_users_count": 12345,
10621062
"latest_reply": "0000000000.000000",
10631063
"reply_users": [
1064-
"B00000000",
1065-
"U00000000"
1064+
"B00000000"
10661065
],
10671066
"subscribed": false,
10681067
"subtype": "",
@@ -1082,5 +1081,8 @@
10821081
},
10831082
"error": "",
10841083
"needed": "",
1085-
"provided": ""
1084+
"provided": "",
1085+
"response_metadata": {
1086+
"next_cursor": ""
1087+
}
10861088
}

slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2043,6 +2043,7 @@ public static FormBody.Builder toForm(ReactionsListRequest req) {
20432043
setIfNotNull("count", req.getCount(), form);
20442044
setIfNotNull("page", req.getPage(), form);
20452045
setIfNotNull("limit", req.getLimit(), form);
2046+
setIfNotNull("cursor", req.getCursor(), form);
20462047
setIfNotNull("team_id", req.getTeamId(), form);
20472048
return form;
20482049
}

slack-api-client/src/main/java/com/slack/api/methods/request/reactions/ReactionsListRequest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public class ReactionsListRequest implements SlackApiRequest {
3232

3333
private Integer limit;
3434

35+
private String cursor;
36+
3537
/**
3638
* Required for org-wide apps.
3739
*/

slack-api-client/src/main/java/com/slack/api/methods/response/reactions/ReactionsListResponse.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ public class ReactionsListResponse implements SlackApiTextResponse {
2020
private transient Map<String, List<String>> httpResponseHeaders;
2121

2222
private List<Item> items;
23-
private Paging paging;
23+
private Paging paging; // for "count" and "page"
24+
private ResponseMetadata responseMetadata; // only when "limit" parameter is given
2425

2526
@Data
2627
public static class Item {

slack-api-client/src/test/java/test_with_remote_apis/methods/reactions_Test.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,28 @@ public void list_async() throws ExecutionException, InterruptedException {
196196
assertThat(response.getItems(), is(notNullValue()));
197197
}
198198

199+
@Test
200+
public void paginationWithLimitAndCursor() throws IOException, SlackApiException {
201+
String user = slack.methods().usersList(r -> r.token(botToken))
202+
.getMembers().get(0).getId();
203+
204+
ReactionsListResponse pageOne = slack.methods().reactionsList(r -> r
205+
.token(botToken)
206+
.user(user)
207+
.limit(1)
208+
);
209+
assertThat(pageOne.getError(), is(nullValue()));
210+
assertThat(pageOne.getResponseMetadata().getNextCursor(), is(notNullValue()));
211+
212+
ReactionsListResponse pageTwo = slack.methods().reactionsList(r -> r
213+
.token(botToken)
214+
.user(user)
215+
.cursor(pageOne.getResponseMetadata().getNextCursor())
216+
.limit(1)
217+
);
218+
assertThat(pageTwo.getError(), is(nullValue()));
219+
assertThat(pageTwo.getResponseMetadata().getNextCursor(),
220+
is(not(pageOne.getResponseMetadata().getNextCursor())));
221+
}
222+
199223
}

0 commit comments

Comments
 (0)