Skip to content

Commit 9e9eab3

Browse files
committed
Merge pull request cloudbees-oss#40 from johnou/metrics
Support for ticket metrics.
2 parents 3a0331e + a7566a4 commit 9e9eab3

File tree

3 files changed

+255
-1
lines changed

3 files changed

+255
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Here is the status of the various API components:
3737
* [Incremental Tickets](http://developer.zendesk.com/documentation/rest_api/ticket_export.html)
3838
* [Ticket Fields](http://developer.zendesk.com/documentation/rest_api/ticket_fields.html)
3939
* [Ticket Import](http://developer.zendesk.com/documentation/rest_api/ticket_import.html)
40-
* [Ticket Metrics](http://developer.zendesk.com/documentation/rest_api/ticket_metrics.html)
40+
* [Ticket Metrics](http://developer.zendesk.com/documentation/rest_api/ticket_metrics.html)
4141
* [Ticket Forms](http://developer.zendesk.com/documentation/rest_api/ticket_forms.html) *getTicketForm() and getTicketForms()*
4242
* [Views](http://developer.zendesk.com/documentation/rest_api/views.html)
4343
* [Users](http://developer.zendesk.com/documentation/rest_api/users.html)

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,18 @@ public Iterable<Ticket> getUserCCDTickets(long userId) {
245245
handleList(Ticket.class, "tickets"));
246246
}
247247

248+
public Iterable<Metric> getTicketMetrics() {
249+
return new PagedIterable<Metric>(cnst("/ticket_metrics.json"), handleList(Metric.class, "ticket_metrics"));
250+
}
251+
252+
public Metric getTicketMetricByTicket(long id) {
253+
return complete(submit(req("GET", tmpl("/tickets/{ticketId}/metrics.json").set("ticketId", id)), handle(Metric.class, "ticket_metric")));
254+
}
255+
256+
public Metric getTicketMetric(long id) {
257+
return complete(submit(req("GET", tmpl("/ticket_metrics/{ticketMetricId}.json").set("ticketMetricId", id)), handle(Metric.class, "ticket_metric")));
258+
}
259+
248260
public Iterable<Audit> getTicketAudits(Ticket ticket) {
249261
checkHasId(ticket);
250262
return getTicketAudits(ticket.getId());
Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
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 jyrij
9+
*/
10+
public class Metric {
11+
12+
@JsonProperty("id")
13+
protected Long id;
14+
@JsonProperty("ticket_id")
15+
protected Long ticketId;
16+
@JsonProperty("group_stations")
17+
protected Long groupStations;
18+
@JsonProperty("assignee_stations")
19+
protected Long assigneeStations;
20+
@JsonProperty("reopens")
21+
protected Long reopens;
22+
@JsonProperty("replies")
23+
protected Long replies;
24+
@JsonProperty("assignee_updated_at")
25+
protected Date assigneeUpdatedAt;
26+
@JsonProperty("requester_updated_at")
27+
protected Date requesterUpdatedAt;
28+
@JsonProperty("status_updated_at")
29+
protected Date lastUpdatedAt;
30+
@JsonProperty("initially_assigned_at")
31+
protected Date initiallyUpdatedAt;
32+
@JsonProperty("assigned_at")
33+
protected Date assignedAt;
34+
@JsonProperty("solved_at")
35+
protected Date solvedAt;
36+
protected Date lastCommentAddedAt;
37+
@JsonProperty("first_resolution_time_in_minutes")
38+
protected ZendeskComboMinutes replyTimeMinutes;
39+
@JsonProperty("full_resolution_time_in_minutes")
40+
protected ZendeskComboMinutes fullResolutionTimeMinutes;
41+
@JsonProperty("agent_wait_time_in_minutes")
42+
protected ZendeskComboMinutes agentWaitTimeMinutes;
43+
@JsonProperty("requester_wait_time_in_minutes")
44+
protected ZendeskComboMinutes requesterWaitTimeMinutes;
45+
@JsonProperty("created_at")
46+
protected Date createdAt;
47+
48+
public Long getId() {
49+
return id;
50+
}
51+
52+
public void setId(Long id) {
53+
this.id = id;
54+
}
55+
56+
public Date getSolvedAt() {
57+
return solvedAt;
58+
}
59+
60+
public void setSolvedAt(Date solvedAt) {
61+
this.solvedAt = solvedAt;
62+
}
63+
64+
public Long getTicketId() {
65+
return ticketId;
66+
}
67+
68+
public void setTicketId(Long ticketId) {
69+
this.ticketId = ticketId;
70+
}
71+
72+
public Date getCreatedAt() {
73+
return createdAt;
74+
}
75+
76+
public void setCreatedAt(Date createdAt) {
77+
this.createdAt = createdAt;
78+
}
79+
80+
public Long getGroupStations() {
81+
return groupStations;
82+
}
83+
84+
public void setGroupStations(Long groupStations) {
85+
this.groupStations = groupStations;
86+
}
87+
88+
public Long getAssigneeStations() {
89+
return assigneeStations;
90+
}
91+
92+
public void setAssigneeStations(Long assigneeStations) {
93+
this.assigneeStations = assigneeStations;
94+
}
95+
96+
public Long getReopens() {
97+
return reopens;
98+
}
99+
100+
public void setReopens(Long reopens) {
101+
this.reopens = reopens;
102+
}
103+
104+
public Long getReplies() {
105+
return replies;
106+
}
107+
108+
public void setReplies(Long replies) {
109+
this.replies = replies;
110+
}
111+
112+
public Date getAssigneeUpdatedAt() {
113+
return assigneeUpdatedAt;
114+
}
115+
116+
public void setAssigneeUpdatedAt(Date assigneeUpdatedAt) {
117+
this.assigneeUpdatedAt = assigneeUpdatedAt;
118+
}
119+
120+
public Date getRequesterUpdatedAt() {
121+
return requesterUpdatedAt;
122+
}
123+
124+
public void setRequesterUpdatedAt(Date requesterUpdatedAt) {
125+
this.requesterUpdatedAt = requesterUpdatedAt;
126+
}
127+
128+
public Date getLastUpdatedAt() {
129+
return lastUpdatedAt;
130+
}
131+
132+
public void setLastUpdatedAt(Date lastUpdatedAt) {
133+
this.lastUpdatedAt = lastUpdatedAt;
134+
}
135+
136+
public Date getInitiallyUpdatedAt() {
137+
return initiallyUpdatedAt;
138+
}
139+
140+
public void setInitiallyUpdatedAt(Date initiallyUpdatedAt) {
141+
this.initiallyUpdatedAt = initiallyUpdatedAt;
142+
}
143+
144+
public Date getAssignedAt() {
145+
return assignedAt;
146+
}
147+
148+
public void setAssignedAt(Date assignedAt) {
149+
this.assignedAt = assignedAt;
150+
}
151+
152+
public Date getLastCommentAddedAt() {
153+
return lastCommentAddedAt;
154+
}
155+
156+
public void setLastCommentAddedAt(Date lastCommentAddedAt) {
157+
this.lastCommentAddedAt = lastCommentAddedAt;
158+
}
159+
160+
public ZendeskComboMinutes getReplyTimeMinutes() {
161+
return replyTimeMinutes;
162+
}
163+
164+
public void setReplyTimeMinutes(ZendeskComboMinutes replyTimeMinutes) {
165+
this.replyTimeMinutes = replyTimeMinutes;
166+
}
167+
168+
public ZendeskComboMinutes getFullResolutionTimeMinutes() {
169+
return fullResolutionTimeMinutes;
170+
}
171+
172+
public void setFullResolutionTimeMinutes(ZendeskComboMinutes fullResolutionTimeMinutes) {
173+
this.fullResolutionTimeMinutes = fullResolutionTimeMinutes;
174+
}
175+
176+
public ZendeskComboMinutes getAgentWaitTimeMinutes() {
177+
return agentWaitTimeMinutes;
178+
}
179+
180+
public void setAgentWaitTimeMinutes(ZendeskComboMinutes agentWaitTimeMinutes) {
181+
this.agentWaitTimeMinutes = agentWaitTimeMinutes;
182+
}
183+
184+
public ZendeskComboMinutes getRequesterWaitTimeMinutes() {
185+
return requesterWaitTimeMinutes;
186+
}
187+
188+
public void setRequesterWaitTimeMinutes(ZendeskComboMinutes requesterWaitTimeMinutes) {
189+
this.requesterWaitTimeMinutes = requesterWaitTimeMinutes;
190+
}
191+
192+
@Override
193+
public String toString() {
194+
return "Metric{" +
195+
"id=" + id +
196+
", ticketId=" + ticketId +
197+
", groupStations=" + groupStations +
198+
", assigneeStations=" + assigneeStations +
199+
", reopens=" + reopens +
200+
", replies=" + replies +
201+
", assigneeUpdatedAt=" + assigneeUpdatedAt +
202+
", requesterUpdatedAt=" + requesterUpdatedAt +
203+
", lastUpdatedAt=" + lastUpdatedAt +
204+
", initiallyUpdatedAt=" + initiallyUpdatedAt +
205+
", assignedAt=" + assignedAt +
206+
", solvedAt=" + solvedAt +
207+
", lastCommentAddedAt=" + lastCommentAddedAt +
208+
", replyTimeMinutes=" + replyTimeMinutes +
209+
", fullResolutionTimeMinutes=" + fullResolutionTimeMinutes +
210+
", agentWaitTimeMinutes=" + agentWaitTimeMinutes +
211+
", requesterWaitTimeMinutes=" + requesterWaitTimeMinutes +
212+
", createdAt=" + createdAt +
213+
'}';
214+
}
215+
216+
protected class ZendeskComboMinutes {
217+
218+
@JsonProperty("calendar")
219+
protected Long calendarMinutes;
220+
@JsonProperty("business")
221+
protected Long businessMinutes;
222+
223+
public ZendeskComboMinutes() {};
224+
225+
public Long getCalendarMinutes() {
226+
return calendarMinutes;
227+
}
228+
229+
public void setCalendarMinutes(Long calendarMinutes) {
230+
this.calendarMinutes = calendarMinutes;
231+
}
232+
233+
public Long getBusinessMinutes() {
234+
return businessMinutes;
235+
}
236+
237+
public void setBusinessMinutes(Long businessMinutes) {
238+
this.businessMinutes = businessMinutes;
239+
}
240+
}
241+
242+
}

0 commit comments

Comments
 (0)