From 4dce17363059521f90d9b58eacd4edc434544db5 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 1 May 2018 07:03:53 -0700 Subject: [PATCH] Extracted the List->List out to Requester for reuse --- src/main/java/org/kohsuke/github/GHIssue.java | 19 +++++-------------- .../org/kohsuke/github/GHPullRequest.java | 4 ++-- .../java/org/kohsuke/github/Requester.java | 8 ++++++++ 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHIssue.java b/src/main/java/org/kohsuke/github/GHIssue.java index 186ea1671..f7cfd9245 100644 --- a/src/main/java/org/kohsuke/github/GHIssue.java +++ b/src/main/java/org/kohsuke/github/GHIssue.java @@ -29,7 +29,6 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.net.URL; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -49,6 +48,8 @@ import static org.kohsuke.github.Previews.*; * @see GHIssueSearchBuilder */ public class GHIssue extends GHObject implements Reactable{ + private static final String ASSIGNEES = "assignees"; + GitHub root; GHRepository owner; @@ -268,8 +269,7 @@ public class GHIssue extends GHObject implements Reactable{ } public void addAssignees(Collection assignees) throws IOException { - List names = toLogins(assignees); - root.retrieve().method("POST").with("assignees",names).to(getIssuesApiRoute()+"/assignees",this); + root.retrieve().method("POST").withLogins(ASSIGNEES,assignees).to(getIssuesApiRoute()+"/assignees",this); } public void setAssignees(GHUser... assignees) throws IOException { @@ -277,7 +277,7 @@ public class GHIssue extends GHObject implements Reactable{ } public void setAssignees(Collection assignees) throws IOException { - editIssue("assignees",toLogins(assignees)); + new Requester(root).withLogins(ASSIGNEES, assignees).method("PATCH").to(getIssuesApiRoute()); } public void removeAssignees(GHUser... assignees) throws IOException { @@ -285,16 +285,7 @@ public class GHIssue extends GHObject implements Reactable{ } public void removeAssignees(Collection assignees) throws IOException { - List names = toLogins(assignees); - root.retrieve().method("DELETE").with("assignees",names).inBody().to(getIssuesApiRoute()+"/assignees",this); - } - - private List toLogins(Collection assignees) { - List names = new ArrayList(assignees.size()); - for (GHUser a : assignees) { - names.add(a.getLogin()); - } - return names; + root.retrieve().method("DELETE").withLogins(ASSIGNEES,assignees).inBody().to(getIssuesApiRoute()+"/assignees",this); } protected String getApiRoute() { diff --git a/src/main/java/org/kohsuke/github/GHPullRequest.java b/src/main/java/org/kohsuke/github/GHPullRequest.java index 6ffcc1926..fb7f8aca1 100644 --- a/src/main/java/org/kohsuke/github/GHPullRequest.java +++ b/src/main/java/org/kohsuke/github/GHPullRequest.java @@ -346,9 +346,9 @@ public class GHPullRequest extends GHIssue { .to(getApiRoute() + COMMENTS_ACTION, GHPullRequestReviewComment.class).wrapUp(this); } - public void requestReviewers(List reviewers) { + public void requestReviewers(List reviewers) throws IOException { new Requester(root).method("POST") - .with("reviewers", toLogins(reviewers)) + .withLogins("reviewers", reviewers) .to(getApiRoute() + REQUEST_REVIEWERS); } diff --git a/src/main/java/org/kohsuke/github/Requester.java b/src/main/java/org/kohsuke/github/Requester.java index c4d62ba62..4670e311e 100644 --- a/src/main/java/org/kohsuke/github/Requester.java +++ b/src/main/java/org/kohsuke/github/Requester.java @@ -169,6 +169,14 @@ class Requester { return _with(key, value); } + public Requester withLogins(String key, Collection users) { + List names = new ArrayList(users.size()); + for (GHUser a : users) { + names.add(a.getLogin()); + } + return with(key,names); + } + public Requester with(String key, Map value) { return _with(key, value); }