PageRenderTime 42ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/example/crucible/restservice/RestCompletionStatusService.java

https://bitbucket.org/atlassian_tutorial/fecru-rest-service-tutorial
Java | 55 lines | 43 code | 8 blank | 4 comment | 1 complexity | 02c03fa132f70ee636edb4cbaf326d08 MD5 | raw file
  1. package com.example.crucible.restservice;
  2. import com.atlassian.crucible.spi.data.ReviewData;
  3. import com.atlassian.crucible.spi.data.ReviewerData;
  4. import com.atlassian.crucible.spi.data.UserData;
  5. import com.atlassian.crucible.spi.services.ReviewService;
  6. import com.sun.tools.javac.util.Pair;
  7. import javax.ws.rs.Consumes;
  8. import javax.ws.rs.GET;
  9. import javax.ws.rs.Path;
  10. import javax.ws.rs.Produces;
  11. import javax.ws.rs.core.MediaType;
  12. import javax.ws.rs.core.Response;
  13. import javax.xml.bind.annotation.XmlElement;
  14. import javax.xml.bind.annotation.XmlRootElement;
  15. import java.util.*;
  16. @Path("/")
  17. @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
  18. @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
  19. public class RestCompletionStatusService {
  20. private final ReviewService reviewService;
  21. public RestCompletionStatusService(ReviewService reviewService) {
  22. this.reviewService = reviewService;
  23. }
  24. // We can't return a naked Collection, it must be wrapped in a container
  25. @XmlRootElement
  26. public static class Reviewers {
  27. public Reviewers(Collection<ReviewerData> reviewer) {
  28. this.reviewer = reviewer;
  29. }
  30. // Needed by JAXB
  31. private Reviewers() {
  32. }
  33. // Must be public. By naming this field 'reviewer' each element in the Collection is
  34. // placed inside a '<reviewer>' element in the XML
  35. public Collection<ReviewerData> reviewer;
  36. }
  37. @GET
  38. @Path("users")
  39. public Response getUncompletedUsers() {
  40. Set<ReviewerData> users = new HashSet<ReviewerData>();
  41. for (ReviewData reviewData : reviewService.getFilteredReviews("allOpenReviews",false)) {
  42. System.out.println(reviewData.getPermaId());
  43. users.addAll(reviewService.getUncompletedReviewers(reviewData.getPermaId()));
  44. }
  45. return Response.ok(new Reviewers(users)).build();
  46. }
  47. }