@@ -203,25 +203,27 @@ public void close() {
203203 // Action methods
204204 //////////////////////////////////////////////////////////////////////
205205
206- public < T > JobStatus < T > getJobStatus (JobStatus < T > status ) {
206+ public JobStatus getJobStatus (JobStatus status ) {
207207 return complete (getJobStatusAsync (status ));
208208 }
209209
210- public <T > ListenableFuture <JobStatus <T >> getJobStatusAsync (JobStatus <T > status ) {
211- return submit (req ("GET" , tmpl ("/job_statuses/{id}.json" ).set ("id" , status .getId ())), handleJobStatus (status .getResultsClass ()));
210+ public ListenableFuture <JobStatus > getJobStatusAsync (JobStatus status ) {
211+ return submit (req ("GET" , tmpl ("/job_statuses/{id}.json" ).set ("id" , status .getId ())),
212+ handleJobStatus ());
212213 }
213214
214- public List <JobStatus < HashMap < String , Object >> > getJobStatuses (List <JobStatus > statuses ) {
215+ public List <JobStatus > getJobStatuses (List <JobStatus > statuses ) {
215216 return complete (getJobStatusesAsync (statuses ));
216217 }
217218
218- public ListenableFuture <List <JobStatus < HashMap < String , Object >> >> getJobStatusesAsync (List <JobStatus > statuses ) {
219+ public ListenableFuture <List <JobStatus >> getJobStatusesAsync (List <JobStatus > statuses ) {
219220 List <String > ids = new ArrayList <>(statuses .size ());
220221 for (JobStatus status : statuses ) {
221222 ids .add (status .getId ());
222223 }
223- Class <JobStatus <HashMap <String , Object >>> clazz = (Class <JobStatus <HashMap <String , Object >>>)(Object )JobStatus .class ;
224- return submit (req ("GET" , tmpl ("/job_statuses/show_many.json{?ids}" ).set ("ids" , ids )), handleList (clazz , "job_statuses" ));
224+ Class <JobStatus > clazz = (Class <JobStatus >) (Object ) JobStatus .class ;
225+ return submit (req ("GET" , tmpl ("/job_statuses/show_many.json{?ids}" ).set ("ids" , ids )),
226+ handleList (clazz , "job_statuses" ));
225227 }
226228
227229 public List <Brand > getBrands (){
@@ -250,17 +252,17 @@ JSON, json(Collections.singletonMap("ticket", ticketImport))),
250252 handle (Ticket .class , "ticket" )));
251253 }
252254
253- public JobStatus < Ticket > importTickets (TicketImport ... ticketImports ) {
255+ public JobStatus importTickets (TicketImport ... ticketImports ) {
254256 return importTickets (Arrays .asList (ticketImports ));
255257 }
256258
257- public JobStatus < Ticket > importTickets (List <TicketImport > ticketImports ) {
259+ public JobStatus importTickets (List <TicketImport > ticketImports ) {
258260 return complete (importTicketsAsync (ticketImports ));
259261 }
260262
261- public ListenableFuture <JobStatus < Ticket > > importTicketsAsync (List <TicketImport > ticketImports ) {
263+ public ListenableFuture <JobStatus > importTicketsAsync (List <TicketImport > ticketImports ) {
262264 return submit (req ("POST" , cnst ("/imports/tickets/create_many.json" ), JSON , json (
263- Collections .singletonMap ("tickets" , ticketImports ))), handleJobStatus (Ticket . class ));
265+ Collections .singletonMap ("tickets" , ticketImports ))), handleJobStatus ());
264266 }
265267
266268 public Ticket getTicket (long id ) {
@@ -278,11 +280,6 @@ public List<User> getTicketCollaborators(long id) {
278280 handleList (User .class , "users" )));
279281 }
280282
281- public JobStatus permanentlyDeleteTicket (Ticket ticket ) {
282- checkHasId (ticket );
283- return permanentlyDeleteTicket (ticket .getId ());
284- }
285-
286283 /**
287284 * https://developer.zendesk.com/rest_api/docs/support/tickets#list-deleted-tickets
288285 */
@@ -309,17 +306,22 @@ public void deleteTicket(long id) {
309306 complete (submit (req ("DELETE" , tmpl ("/tickets/{id}.json" ).set ("id" , id )), handleStatus ()));
310307 }
311308
309+ public JobStatus permanentlyDeleteTicket (Ticket ticket ) {
310+ checkHasId (ticket );
311+ return permanentlyDeleteTicket (ticket .getId ());
312+ }
313+
312314 public JobStatus permanentlyDeleteTicket (long id ) {
313315 return complete (submit (
314316 req ("DELETE" , tmpl ("/deleted_tickets/{id}.json" ).set ("id" , id )),
315- handleJobStatus (JobStatus . class ))
317+ handleJobStatus ())
316318 );
317319 }
318320
319- public ListenableFuture <JobStatus < Ticket > > queueCreateTicketAsync (Ticket ticket ) {
321+ public ListenableFuture <JobStatus > queueCreateTicketAsync (Ticket ticket ) {
320322 return submit (req ("POST" , cnst ("/tickets.json?async=true" ),
321323 JSON , json (Collections .singletonMap ("ticket" , ticket ))),
322- handleJobStatus (Ticket . class ));
324+ handleJobStatus ());
323325 }
324326
325327 public ListenableFuture <Ticket > createTicketAsync (Ticket ticket ) {
@@ -332,17 +334,17 @@ public Ticket createTicket(Ticket ticket) {
332334 return complete (createTicketAsync (ticket ));
333335 }
334336
335- public JobStatus < Ticket > createTickets (Ticket ... tickets ) {
337+ public JobStatus createTickets (Ticket ... tickets ) {
336338 return createTickets (Arrays .asList (tickets ));
337339 }
338340
339- public JobStatus < Ticket > createTickets (List <Ticket > tickets ) {
341+ public JobStatus createTickets (List <Ticket > tickets ) {
340342 return complete (createTicketsAsync (tickets ));
341343 }
342344
343- public ListenableFuture <JobStatus < Ticket > > createTicketsAsync (List <Ticket > tickets ) {
345+ public ListenableFuture <JobStatus > createTicketsAsync (List <Ticket > tickets ) {
344346 return submit (req ("POST" , cnst ("/tickets/create_many.json" ), JSON , json (
345- Collections .singletonMap ("tickets" , tickets ))), handleJobStatus (Ticket . class ));
347+ Collections .singletonMap ("tickets" , tickets ))), handleJobStatus ());
346348 }
347349
348350 public Ticket updateTicket (Ticket ticket ) {
@@ -352,17 +354,17 @@ JSON, json(Collections.singletonMap("ticket", ticket))),
352354 handle (Ticket .class , "ticket" )));
353355 }
354356
355- public JobStatus < Ticket > updateTickets (Ticket ... tickets ) {
357+ public JobStatus updateTickets (Ticket ... tickets ) {
356358 return updateTickets (Arrays .asList (tickets ));
357359 }
358360
359- public JobStatus < Ticket > updateTickets (List <Ticket > tickets ) {
361+ public JobStatus updateTickets (List <Ticket > tickets ) {
360362 return complete (updateTicketsAsync (tickets ));
361363 }
362364
363- public ListenableFuture <JobStatus < Ticket > > updateTicketsAsync (List <Ticket > tickets ) {
365+ public ListenableFuture <JobStatus > updateTicketsAsync (List <Ticket > tickets ) {
364366 return submit (req ("PUT" , cnst ("/tickets/update_many.json" ), JSON , json (
365- Collections .singletonMap ("tickets" , tickets ))), handleJobStatus (Ticket . class ));
367+ Collections .singletonMap ("tickets" , tickets ))), handleJobStatus ());
366368 }
367369
368370 public void markTicketAsSpam (Ticket ticket ) {
@@ -380,11 +382,10 @@ public void deleteTickets(long id, long... ids) {
380382 }
381383
382384 public JobStatus permanentlyDeleteTickets (long id , long ... ids ) {
383-
384385 return complete (
385386 submit (
386387 req ("DELETE" , tmpl ("/deleted_tickets/destroy_many.json{?ids}" ).set ("ids" , idArray (id , ids ))),
387- handleJobStatus (JobStatus . class ))
388+ handleJobStatus ())
388389 );
389390 }
390391
@@ -817,35 +818,35 @@ public User createUser(User user) {
817818 Collections .singletonMap ("user" , user ))), handle (User .class , "user" )));
818819 }
819820
820- public JobStatus < User > createUsers (User ... users ) {
821+ public JobStatus createUsers (User ... users ) {
821822 return createUsers (Arrays .asList (users ));
822823 }
823824
824- public JobStatus < User > createUsers (List <User > users ) {
825+ public JobStatus createUsers (List <User > users ) {
825826 return complete (createUsersAsync (users ));
826827 }
827828
828- public ListenableFuture <JobStatus < User > > createUsersAsync (List <User > users ) {
829+ public ListenableFuture <JobStatus > createUsersAsync (List <User > users ) {
829830 return submit (req ("POST" , cnst ("/users/create_many.json" ), JSON , json (
830- Collections .singletonMap ("users" , users ))), handleJobStatus (User . class ));
831+ Collections .singletonMap ("users" , users ))), handleJobStatus ());
831832 }
832833
833834 public User createOrUpdateUser (User user ) {
834835 return complete (submit (req ("POST" , cnst ("/users/create_or_update.json" ), JSON , json (
835836 Collections .singletonMap ("user" , user ))), handle (User .class , "user" )));
836837 }
837838
838- public JobStatus < User > createOrUpdateUsers (User ... users ) {
839+ public JobStatus createOrUpdateUsers (User ... users ) {
839840 return createOrUpdateUsers (Arrays .asList (users ));
840841 }
841842
842- public JobStatus < User > createOrUpdateUsers (List <User > users ) {
843+ public JobStatus createOrUpdateUsers (List <User > users ) {
843844 return complete (createOrUpdateUsersAsync (users ));
844845 }
845846
846- public ListenableFuture <JobStatus < User > > createOrUpdateUsersAsync (List <User > users ) {
847+ public ListenableFuture <JobStatus > createOrUpdateUsersAsync (List <User > users ) {
847848 return submit (req ("POST" , cnst ("/users/create_or_update_many.json" ), JSON , json (
848- Collections .singletonMap ("users" , users ))), handleJobStatus (User . class ));
849+ Collections .singletonMap ("users" , users ))), handleJobStatus ());
849850 }
850851
851852 public User updateUser (User user ) {
@@ -854,17 +855,17 @@ public User updateUser(User user) {
854855 Collections .singletonMap ("user" , user ))), handle (User .class , "user" )));
855856 }
856857
857- public JobStatus < User > updateUsers (User ... users ) {
858+ public JobStatus updateUsers (User ... users ) {
858859 return updateUsers (Arrays .asList (users ));
859860 }
860861
861- public JobStatus < User > updateUsers (List <User > users ) {
862+ public JobStatus updateUsers (List <User > users ) {
862863 return complete (updateUsersAsync (users ));
863864 }
864865
865- public ListenableFuture <JobStatus < User > > updateUsersAsync (List <User > users ) {
866+ public ListenableFuture <JobStatus > updateUsersAsync (List <User > users ) {
866867 return submit (req ("PUT" , cnst ("/users/update_many.json" ), JSON , json (
867- Collections .singletonMap ("users" , users ))), handleJobStatus (User . class ));
868+ Collections .singletonMap ("users" , users ))), handleJobStatus ());
868869 }
869870
870871 public void deleteUser (User user ) {
@@ -1195,17 +1196,17 @@ public Organization createOrganization(Organization organization) {
11951196 Collections .singletonMap ("organization" , organization ))), handle (Organization .class , "organization" )));
11961197 }
11971198
1198- public JobStatus < Organization > createOrganizations (Organization ... organizations ) {
1199+ public JobStatus createOrganizations (Organization ... organizations ) {
11991200 return createOrganizations (Arrays .asList (organizations ));
12001201 }
12011202
12021203 public JobStatus createOrganizations (List <Organization > organizations ) {
12031204 return complete (createOrganizationsAsync (organizations ));
12041205 }
12051206
1206- public ListenableFuture <JobStatus < Organization > > createOrganizationsAsync (List <Organization > organizations ) {
1207+ public ListenableFuture <JobStatus > createOrganizationsAsync (List <Organization > organizations ) {
12071208 return submit (req ("POST" , cnst ("/organizations/create_many.json" ), JSON , json (
1208- Collections .singletonMap ("organizations" , organizations ))), handleJobStatus (Organization . class ));
1209+ Collections .singletonMap ("organizations" , organizations ))), handleJobStatus ());
12091210 }
12101211
12111212 public Organization updateOrganization (Organization organization ) {
@@ -1214,17 +1215,17 @@ public Organization updateOrganization(Organization organization) {
12141215 Collections .singletonMap ("organization" , organization ))), handle (Organization .class , "organization" )));
12151216 }
12161217
1217- public JobStatus < Organization > updateOrganizations (Organization ... organizations ) {
1218+ public JobStatus updateOrganizations (Organization ... organizations ) {
12181219 return updateOrganizations (Arrays .asList (organizations ));
12191220 }
12201221
12211222 public JobStatus updateOrganizations (List <Organization > organizations ) {
12221223 return complete (updateOrganizationsAsync (organizations ));
12231224 }
12241225
1225- public ListenableFuture <JobStatus < Organization > > updateOrganizationsAsync (List <Organization > organizations ) {
1226+ public ListenableFuture <JobStatus > updateOrganizationsAsync (List <Organization > organizations ) {
12261227 return submit (req ("PUT" , cnst ("/organizations/update_many.json" ), JSON , json (
1227- Collections .singletonMap ("organizations" , organizations ))), handleJobStatus (Organization . class ));
1228+ Collections .singletonMap ("organizations" , organizations ))), handleJobStatus ());
12281229 }
12291230
12301231 public void deleteOrganization (Organization organization ) {
@@ -1283,7 +1284,7 @@ public OrganizationMembership createOrganizationMembership(OrganizationMembershi
12831284 /**
12841285 * https://developer.zendesk.com/rest_api/docs/support/organization_memberships#create-many-memberships
12851286 */
1286- public JobStatus < OrganizationMembership > createOrganizationMemberships (OrganizationMembership ... organizationMemberships ) {
1287+ public JobStatus createOrganizationMemberships (OrganizationMembership ... organizationMemberships ) {
12871288 return createOrganizationMemberships (Arrays .asList (organizationMemberships ));
12881289 }
12891290
@@ -1297,9 +1298,10 @@ public JobStatus createOrganizationMemberships(List<OrganizationMembership> orga
12971298 /**
12981299 * https://developer.zendesk.com/rest_api/docs/support/organization_memberships#create-many-memberships
12991300 */
1300- public ListenableFuture <JobStatus <OrganizationMembership >> createOrganizationMembershipsAsync (List <OrganizationMembership > organizationMemberships ) {
1301+ public ListenableFuture <JobStatus > createOrganizationMembershipsAsync (
1302+ List <OrganizationMembership > organizationMemberships ) {
13011303 return submit (req ("POST" , cnst ("/organization_memberships/create_many.json" ), JSON , json (
1302- Collections .singletonMap ("organization_memberships" , organizationMemberships ))), handleJobStatus (OrganizationMembership . class ));
1304+ Collections .singletonMap ("organization_memberships" , organizationMemberships ))), handleJobStatus ());
13031305 }
13041306
13051307 public void deleteOrganizationMembership (long id ) {
@@ -2413,17 +2415,16 @@ protected <T> ZendeskAsyncCompletionHandler<T> handle(final Class<T> clazz, fina
24132415 return new BasicAsyncCompletionHandler <>(clazz , name , typeParams );
24142416 }
24152417
2416- protected < T > ZendeskAsyncCompletionHandler <JobStatus < T >> handleJobStatus (final Class < T > resultClass ) {
2417- return new BasicAsyncCompletionHandler <JobStatus < T >> (JobStatus .class , "job_status" , resultClass ) {
2418+ protected ZendeskAsyncCompletionHandler <JobStatus > handleJobStatus () {
2419+ return new BasicAsyncCompletionHandler <JobStatus > (JobStatus .class , "job_status" ) {
24182420 @ Override
2419- public JobStatus < T > onCompleted (Response response ) throws Exception {
2420- JobStatus < T > result = super .onCompleted (response );
2421+ public JobStatus onCompleted (Response response ) throws Exception {
2422+ JobStatus result = super .onCompleted (response );
24212423 if (result == null ) {
24222424 // null is when we receive a 404 response.
24232425 // For an async job we trigger an error
24242426 throw new ZendeskResponseException (response );
24252427 }
2426- result .setResultsClass (resultClass );
24272428 return result ;
24282429 }
24292430 };
0 commit comments