Skip to content

Commit eba57f1

Browse files
committed
#307 Add a sorting order for the comment retrieval
1 parent 00b59bb commit eba57f1

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
@@ -48,6 +48,7 @@
4848
import static org.hamcrest.CoreMatchers.notNullValue;
4949
import static org.hamcrest.CoreMatchers.nullValue;
5050
import static org.hamcrest.Matchers.lessThanOrEqualTo;
51+
import static org.hamcrest.core.StringContains.containsString;
5152
import static org.junit.Assert.assertEquals;
5253
import static org.junit.Assert.assertNotEquals;
5354
import static org.junit.Assert.assertNotNull;
@@ -1084,4 +1085,54 @@ public void createTicketForm() throws Exception {
10841085
assertEquals(givenName, createdForm.getRawName());
10851086
assertEquals(givenName, createdForm.getRawDisplayName());
10861087
}
1088+
1089+
@Test
1090+
public void getTicketCommentsShouldBeAscending() throws Exception {
1091+
createClientWithTokenOrPassword();
1092+
1093+
Ticket t = new Ticket(
1094+
new Ticket.Requester(config.getProperty("requester.name"), config.getProperty("requester.email")),
1095+
"This is an automated test ticket", new Comment("1"));
1096+
Ticket ticket = null;
1097+
try {
1098+
ticket = instance.createTicket(t);
1099+
instance.createComment(ticket.getId(), new Comment("2"));
1100+
Iterable<Comment> ticketCommentsIt = instance.getTicketComments(ticket.getId());
1101+
List<Comment> comments = new ArrayList<>();
1102+
ticketCommentsIt.forEach(comments::add);
1103+
1104+
assertThat(comments.size(), is(2));
1105+
assertThat(comments.get(0).getBody(), containsString("1"));
1106+
assertThat(comments.get(1).getBody(), containsString("2"));
1107+
} finally {
1108+
if (ticket != null) {
1109+
instance.deleteTicket(ticket.getId());
1110+
}
1111+
}
1112+
}
1113+
1114+
@Test
1115+
public void getTicketCommentsDescending() throws Exception {
1116+
createClientWithTokenOrPassword();
1117+
1118+
Ticket t = new Ticket(
1119+
new Ticket.Requester(config.getProperty("requester.name"), config.getProperty("requester.email")),
1120+
"This is an automated test ticket", new Comment("1"));
1121+
Ticket ticket = null;
1122+
try {
1123+
ticket = instance.createTicket(t);
1124+
instance.createComment(ticket.getId(), new Comment("2"));
1125+
Iterable<Comment> ticketCommentsIt = instance.getTicketComments(ticket.getId(), SortOrder.DESCENDING);
1126+
List<Comment> comments = new ArrayList<>();
1127+
ticketCommentsIt.forEach(comments::add);
1128+
1129+
assertThat(comments.size(), is(2));
1130+
assertThat(comments.get(0).getBody(), containsString("2"));
1131+
assertThat(comments.get(1).getBody(), containsString("1"));
1132+
} finally {
1133+
if (ticket != null) {
1134+
instance.deleteTicket(ticket.getId());
1135+
}
1136+
}
1137+
}
10871138
}

0 commit comments

Comments
 (0)