Skip to content

Commit 9fda174

Browse files
authored
Merge pull request #308 from PierreBtz/pbeitz/dev
#307 Add a sorting order for the comment retrieval
2 parents f07a80d + eba57f1 commit 9fda174

File tree

3 files changed

+75
-2
lines changed

3 files changed

+75
-2
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.zendesk.client.v2;
2+
3+
public enum SortOrder {
4+
ASCENDING("asc"), DESCENDING("desc");
5+
6+
private String queryParameter;
7+
8+
SortOrder(String queryParameter) {
9+
this.queryParameter = queryParameter;
10+
}
11+
12+
public String getQueryParameter() {
13+
return queryParameter;
14+
}
15+
}

src/main/java/org/zendesk/client/v2/Zendesk.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,8 +1048,15 @@ public Iterable<Comment> getRequestComments(long id) {
10481048
}
10491049

10501050
public Iterable<Comment> getTicketComments(long id) {
1051-
return new PagedIterable<>(tmpl("/tickets/{id}/comments.json").set("id", id),
1052-
handleList(Comment.class, "comments"));
1051+
return getTicketComments(id, SortOrder.ASCENDING);
1052+
}
1053+
1054+
public Iterable<Comment> getTicketComments(long id, SortOrder order) {
1055+
return new PagedIterable<>(
1056+
tmpl("/tickets/{id}/comments.json?sort_order={order}")
1057+
.set("id", id)
1058+
.set("order", order.getQueryParameter()),
1059+
handleList(Comment.class, "comments"));
10531060
}
10541061

10551062
public Comment getRequestComment(org.zendesk.client.v2.model.Request request, Comment comment) {

src/test/java/org/zendesk/client/v2/RealSmokeTest.java

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import static org.hamcrest.CoreMatchers.nullValue;
5353
import static org.hamcrest.Matchers.greaterThan;
5454
import static org.hamcrest.Matchers.lessThanOrEqualTo;
55+
import static org.hamcrest.core.StringContains.containsString;
5556
import static org.junit.Assert.assertEquals;
5657
import static org.junit.Assert.assertNotEquals;
5758
import static org.junit.Assert.assertNotNull;
@@ -1106,4 +1107,54 @@ public void createTicketForm() throws Exception {
11061107
assertEquals(givenName, createdForm.getRawName());
11071108
assertEquals(givenName, createdForm.getRawDisplayName());
11081109
}
1110+
1111+
@Test
1112+
public void getTicketCommentsShouldBeAscending() throws Exception {
1113+
createClientWithTokenOrPassword();
1114+
1115+
Ticket t = new Ticket(
1116+
new Ticket.Requester(config.getProperty("requester.name"), config.getProperty("requester.email")),
1117+
"This is an automated test ticket", new Comment("1"));
1118+
Ticket ticket = null;
1119+
try {
1120+
ticket = instance.createTicket(t);
1121+
instance.createComment(ticket.getId(), new Comment("2"));
1122+
Iterable<Comment> ticketCommentsIt = instance.getTicketComments(ticket.getId());
1123+
List<Comment> comments = new ArrayList<>();
1124+
ticketCommentsIt.forEach(comments::add);
1125+
1126+
assertThat(comments.size(), is(2));
1127+
assertThat(comments.get(0).getBody(), containsString("1"));
1128+
assertThat(comments.get(1).getBody(), containsString("2"));
1129+
} finally {
1130+
if (ticket != null) {
1131+
instance.deleteTicket(ticket.getId());
1132+
}
1133+
}
1134+
}
1135+
1136+
@Test
1137+
public void getTicketCommentsDescending() throws Exception {
1138+
createClientWithTokenOrPassword();
1139+
1140+
Ticket t = new Ticket(
1141+
new Ticket.Requester(config.getProperty("requester.name"), config.getProperty("requester.email")),
1142+
"This is an automated test ticket", new Comment("1"));
1143+
Ticket ticket = null;
1144+
try {
1145+
ticket = instance.createTicket(t);
1146+
instance.createComment(ticket.getId(), new Comment("2"));
1147+
Iterable<Comment> ticketCommentsIt = instance.getTicketComments(ticket.getId(), SortOrder.DESCENDING);
1148+
List<Comment> comments = new ArrayList<>();
1149+
ticketCommentsIt.forEach(comments::add);
1150+
1151+
assertThat(comments.size(), is(2));
1152+
assertThat(comments.get(0).getBody(), containsString("2"));
1153+
assertThat(comments.get(1).getBody(), containsString("1"));
1154+
} finally {
1155+
if (ticket != null) {
1156+
instance.deleteTicket(ticket.getId());
1157+
}
1158+
}
1159+
}
11091160
}

0 commit comments

Comments
 (0)