Skip to content

Commit 2347b14

Browse files
committed
Add support for Requests and Comments
1 parent ccea0c1 commit 2347b14

File tree

5 files changed

+330
-163
lines changed

5 files changed

+330
-163
lines changed

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

Lines changed: 88 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.slf4j.LoggerFactory;
1818
import org.zendesk.client.v2.model.Attachment;
1919
import org.zendesk.client.v2.model.Audit;
20+
import org.zendesk.client.v2.model.Comment;
2021
import org.zendesk.client.v2.model.Field;
2122
import org.zendesk.client.v2.model.Identity;
2223
import org.zendesk.client.v2.model.Ticket;
@@ -425,7 +426,7 @@ public Identity verifyUserIdentity(User user, int identityId) {
425426

426427
public Identity verifyUserIdentity(int userId, int identityId) {
427428
return complete(submit(req("PUT", tmpl("/users/{userId}/identities/{identityId}/verify")
428-
.set("userId",userId)
429+
.set("userId", userId)
429430
.set("identityId", identityId)), handle(Identity.class, "identity")));
430431
}
431432

@@ -441,7 +442,7 @@ public Identity requestVerifyUserIdentity(User user, int identityId) {
441442

442443
public Identity requestVerifyUserIdentity(int userId, int identityId) {
443444
return complete(submit(req("PUT", tmpl("/users/{userId}/identities/{identityId}/request_verification")
444-
.set("userId",userId)
445+
.set("userId", userId)
445446
.set("identityId", identityId)), handle(Identity.class, "identity")));
446447
}
447448

@@ -462,6 +463,79 @@ public void deleteUserIdentity(int userId, int identityId) {
462463
), handleStatus()));
463464
}
464465

466+
public Iterable<org.zendesk.client.v2.model.Request> getRequests() {
467+
return new PagedIterable<org.zendesk.client.v2.model.Request>(cnst("/requests.json"),
468+
handleList(org.zendesk.client.v2.model.Request.class, "requests"));
469+
}
470+
471+
public Iterable<org.zendesk.client.v2.model.Request> getOpenRequests() {
472+
return new PagedIterable<org.zendesk.client.v2.model.Request>(cnst("/requests/open.json"),
473+
handleList(org.zendesk.client.v2.model.Request.class, "requests"));
474+
}
475+
476+
public Iterable<org.zendesk.client.v2.model.Request> getSolvedRequests() {
477+
return new PagedIterable<org.zendesk.client.v2.model.Request>(cnst("/requests/solved.json"),
478+
handleList(org.zendesk.client.v2.model.Request.class, "requests"));
479+
}
480+
481+
public Iterable<org.zendesk.client.v2.model.Request> getCCRequests() {
482+
return new PagedIterable<org.zendesk.client.v2.model.Request>(cnst("/requests/ccd.json"),
483+
handleList(org.zendesk.client.v2.model.Request.class, "requests"));
484+
}
485+
486+
public Iterable<org.zendesk.client.v2.model.Request> getUserRequests(User user) {
487+
checkHasId(user);
488+
return getUserRequests(user.getId());
489+
}
490+
491+
public Iterable<org.zendesk.client.v2.model.Request> getUserRequests(int id) {
492+
return new PagedIterable<org.zendesk.client.v2.model.Request>(tmpl("/users/{id}/requests.json").set("id", id),
493+
handleList(org.zendesk.client.v2.model.Request.class, "requests"));
494+
}
495+
496+
public org.zendesk.client.v2.model.Request getRequest(int id) {
497+
return complete(submit(req("GET", tmpl("/requests/{id}.json").set("id", id)),
498+
handle(org.zendesk.client.v2.model.Request.class, "request")));
499+
}
500+
501+
public org.zendesk.client.v2.model.Request createRequest(org.zendesk.client.v2.model.Request request) {
502+
return complete(submit(req("POST", cnst("/requests.json"),
503+
JSON, json(Collections.singletonMap("request", request))),
504+
handle(org.zendesk.client.v2.model.Request.class, "request")));
505+
}
506+
public org.zendesk.client.v2.model.Request updateRequest(org.zendesk.client.v2.model.Request request) {
507+
checkHasId(request);
508+
return complete(submit(req("PUT", tmpl("/requests/{id}.json").set("id", request.getId()),
509+
JSON, json(Collections.singletonMap("request", request))),
510+
handle(org.zendesk.client.v2.model.Request.class, "request")));
511+
}
512+
513+
public Iterable<Comment> getRequestComments(org.zendesk.client.v2.model.Request request) {
514+
checkHasId(request);
515+
return getRequestComments(request.getId());
516+
}
517+
518+
public Iterable<Comment> getRequestComments(int id) {
519+
return new PagedIterable<Comment>(tmpl("/requests/{id}/comments.json").set("id", id),
520+
handleList(Comment.class, "comments"));
521+
}
522+
523+
public Comment getRequestComment(org.zendesk.client.v2.model.Request request, Comment comment) {
524+
checkHasId(comment);
525+
return getRequestComment(request, comment.getId());
526+
}
527+
528+
public Comment getRequestComment(org.zendesk.client.v2.model.Request request, int commentId) {
529+
checkHasId(request);
530+
return getRequestComment(request.getId(), commentId);
531+
}
532+
533+
public Comment getRequestComment(int requestId, int commentId) {
534+
return complete(submit(req("GET", tmpl("/requests/{requestId}/comments/{commentId}.json")
535+
.set("requestId", requestId)
536+
.set("commentId", commentId)),
537+
handle(Comment.class, "comment")));
538+
}
465539

466540
//////////////////////////////////////////////////////////////////////
467541
// Helper methods
@@ -636,12 +710,24 @@ private static void checkHasId(Ticket ticket) {
636710
}
637711
}
638712

713+
private static void checkHasId(org.zendesk.client.v2.model.Request request) {
714+
if (request.getId() == null) {
715+
throw new IllegalArgumentException("Request requires id");
716+
}
717+
}
718+
639719
private static void checkHasId(Audit audit) {
640720
if (audit.getId() == null) {
641721
throw new IllegalArgumentException("Audit requires id");
642722
}
643723
}
644724

725+
private static void checkHasId(Comment comment) {
726+
if (comment.getId() == null) {
727+
throw new IllegalArgumentException("Comment requires id");
728+
}
729+
}
730+
645731
private static void checkHasId(Field field) {
646732
if (field.getId() == null) {
647733
throw new IllegalArgumentException("Field requires id");
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package org.zendesk.client.v2.model;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import java.util.Arrays;
6+
import java.util.Date;
7+
import java.util.List;
8+
9+
/**
10+
* @author stephenc
11+
* @since 09/04/2013 15:09
12+
*/
13+
public class Comment {
14+
private Integer id;
15+
private String body;
16+
private Integer authorId;
17+
private List<String> uploads;
18+
private List<Attachment> attachments;
19+
private Date createdAt;
20+
21+
public Comment() {
22+
}
23+
24+
public Comment(String body) {
25+
this.body = body;
26+
}
27+
28+
public Comment(String body, String... uploads) {
29+
this.body = body;
30+
this.uploads = uploads.length == 0 ? null : Arrays.asList(uploads);
31+
}
32+
33+
public String getBody() {
34+
return body;
35+
}
36+
37+
public void setBody(String body) {
38+
this.body = body;
39+
}
40+
41+
public List<String> getUploads() {
42+
return uploads;
43+
}
44+
45+
public void setUploads(List<String> uploads) {
46+
this.uploads = uploads;
47+
}
48+
49+
public List<Attachment> getAttachments() {
50+
return attachments;
51+
}
52+
53+
public void setAttachments(List<Attachment> attachments) {
54+
this.attachments = attachments;
55+
}
56+
57+
@JsonProperty("author_id")
58+
public Integer getAuthorId() {
59+
return authorId;
60+
}
61+
62+
public void setAuthorId(Integer authorId) {
63+
this.authorId = authorId;
64+
}
65+
66+
@JsonProperty("created_at")
67+
public Date getCreatedAt() {
68+
return createdAt;
69+
}
70+
71+
public void setCreatedAt(Date createdAt) {
72+
this.createdAt = createdAt;
73+
}
74+
75+
public Integer getId() {
76+
return id;
77+
}
78+
79+
public void setId(Integer id) {
80+
this.id = id;
81+
}
82+
83+
@Override
84+
public String toString() {
85+
final StringBuilder sb = new StringBuilder("Comment{");
86+
sb.append("id=").append(id);
87+
sb.append(", body='").append(body).append('\'');
88+
sb.append(", authorId=").append(authorId);
89+
sb.append(", attachments=").append(attachments);
90+
sb.append(", createdAt=").append(createdAt);
91+
sb.append(", uploads=").append(uploads);
92+
sb.append('}');
93+
return sb.toString();
94+
}
95+
}
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
package org.zendesk.client.v2.model;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
import java.util.Date;
6+
7+
/**
8+
* @author stephenc
9+
* @since 09/04/2013 15:08
10+
*/
11+
public class Request {
12+
protected Integer id;
13+
protected String url;
14+
protected String subject;
15+
protected String description;
16+
protected Status status;
17+
protected Ticket.Requester requester;
18+
protected Integer requesterId;
19+
protected Integer organizationId;
20+
protected Via via;
21+
protected Date createdAt;
22+
protected Date updatedAt;
23+
protected Comment comment;
24+
25+
@JsonProperty("created_at")
26+
public Date getCreatedAt() {
27+
return createdAt;
28+
}
29+
30+
public void setCreatedAt(Date createdAt) {
31+
this.createdAt = createdAt;
32+
}
33+
34+
@JsonProperty()
35+
public String getDescription() {
36+
return description;
37+
}
38+
39+
public void setDescription(String description) {
40+
this.description = description;
41+
}
42+
43+
public Integer getId() {
44+
return id;
45+
}
46+
47+
public void setId(Integer id) {
48+
this.id = id;
49+
}
50+
51+
@JsonProperty("organization_id")
52+
public Integer getOrganizationId() {
53+
return organizationId;
54+
}
55+
56+
public void setOrganizationId(Integer organizationId) {
57+
this.organizationId = organizationId;
58+
}
59+
60+
@JsonProperty("requester_id")
61+
public Integer getRequesterId() {
62+
return requesterId;
63+
}
64+
65+
public void setRequesterId(Integer requesterId) {
66+
this.requesterId = requesterId;
67+
if (requesterId != null) {
68+
this.requester = null;
69+
}
70+
}
71+
72+
public Status getStatus() {
73+
return status;
74+
}
75+
76+
public void setStatus(Status status) {
77+
this.status = status;
78+
}
79+
80+
public String getSubject() {
81+
return subject;
82+
}
83+
84+
public void setSubject(String subject) {
85+
this.subject = subject;
86+
}
87+
88+
@JsonProperty("updated_at")
89+
public Date getUpdatedAt() {
90+
return updatedAt;
91+
}
92+
93+
public void setUpdatedAt(Date updatedAt) {
94+
this.updatedAt = updatedAt;
95+
}
96+
97+
public String getUrl() {
98+
return url;
99+
}
100+
101+
public void setUrl(String url) {
102+
this.url = url;
103+
}
104+
105+
public Via getVia() {
106+
return via;
107+
}
108+
109+
public void setVia(Via via) {
110+
this.via = via;
111+
}
112+
113+
public Comment getComment() {
114+
return comment;
115+
}
116+
117+
public void setComment(Comment comment) {
118+
this.comment = comment;
119+
}
120+
}

0 commit comments

Comments
 (0)