diff --git a/src/main/java/org/gitlab4j/api/Constants.java b/src/main/java/org/gitlab4j/api/Constants.java index 26a36f253f8da04bcd99f78494bae53f5a336d23..ce4beda506e5e2bb3927eecffbb9a832e4278e84 100644 --- a/src/main/java/org/gitlab4j/api/Constants.java +++ b/src/main/java/org/gitlab4j/api/Constants.java @@ -171,6 +171,7 @@ public interface Constants { /** Enum to use for querying the state of a MergeRequest */ public enum MergeRequestState { + OPENED, CLOSED, MERGED, ALL; private static JacksonJsonEnumHelper enumHelper = new JacksonJsonEnumHelper<>(MergeRequestState.class); @@ -178,7 +179,6 @@ public interface Constants { @JsonCreator public static MergeRequestState forValue(String value) { return enumHelper.forValue(value); } - @JsonValue public String toValue() { return (enumHelper.toString(this)); @@ -190,7 +190,6 @@ public interface Constants { } } - /** Enum to use for specifying the state of a merge request or issue update. */ public enum StateEvent { diff --git a/src/main/java/org/gitlab4j/api/MergeRequestApi.java b/src/main/java/org/gitlab4j/api/MergeRequestApi.java index cf296a249d95fab1c345ecd4c45b0cff41caf551..9739d1ecd6281dddfca6b6ddbe520e0d37367e2b 100644 --- a/src/main/java/org/gitlab4j/api/MergeRequestApi.java +++ b/src/main/java/org/gitlab4j/api/MergeRequestApi.java @@ -29,8 +29,7 @@ public class MergeRequestApi extends AbstractApi { * @throws GitLabApiException if any exception occurs */ public List getMergeRequests(Integer projectId) throws GitLabApiException { - Response response = get(Response.Status.OK, getDefaultPerPageParam(), "projects", projectId, "merge_requests"); - return (response.readEntity(new GenericType>() {})); + return (getMergeRequests(projectId, 1, getDefaultPerPage())); } /** @@ -64,60 +63,55 @@ public class MergeRequestApi extends AbstractApi { } /** - * Get all merge requests for the specified project. + * Get all merge requests with a specific state for the specified project. * - * GET /projects/:id/merge_requests + * GET /projects/:id/merge_requests?state=:state * * @param projectId the project ID to get the merge requests for - * @param page the page to get - * @param perPage the number of MergeRequest instances per page * @param state the state parameter can be used to get only merge requests with a given state (opened, closed, or merged) or all of them (all). * @return all merge requests for the specified project * @throws GitLabApiException if any exception occurs */ - public List getMergeRequests(Integer projectId, int page, int perPage, MergeRequestState state) throws GitLabApiException { - Form formData = new GitLabApiForm() - .withParam("state", state) - .withParam(PAGE_PARAM, page) - .withParam(PER_PAGE_PARAM, perPage); - Response response = get(Response.Status.OK, formData.asMap(), "projects", projectId, "merge_requests"); - return (response.readEntity(new GenericType>() {})); + public List getMergeRequests(Integer projectId, MergeRequestState state) throws GitLabApiException { + return (getMergeRequests(projectId, state, 1, getDefaultPerPage())); } - /** * Get all merge requests for the specified project. * * GET /projects/:id/merge_requests * * @param projectId the project ID to get the merge requests for - * @param itemsPerPage the number of MergeRequest instances that will be fetched per page * @param state the state parameter can be used to get only merge requests with a given state (opened, closed, or merged) or all of them (all). + * @param page the page to get + * @param perPage the number of MergeRequest instances per page * @return all merge requests for the specified project * @throws GitLabApiException if any exception occurs */ - public Pager getMergeRequests(Integer projectId, int itemsPerPage, MergeRequestState state) throws GitLabApiException { + public List getMergeRequests(Integer projectId, MergeRequestState state, int page, int perPage) throws GitLabApiException { Form formData = new GitLabApiForm() - .withParam("state", state); - return (new Pager(this, MergeRequest.class, itemsPerPage, formData.asMap(), "projects", projectId, "merge_requests")); + .withParam("state", state) + .withParam(PAGE_PARAM, page) + .withParam(PER_PAGE_PARAM, perPage); + Response response = get(Response.Status.OK, formData.asMap(), "projects", projectId, "merge_requests"); + return (response.readEntity(new GenericType>() {})); } /** - * Get all merge requests with a specific state for the specified project. + * Get all merge requests for the specified project. * - * GET /projects/:id/merge_requests?state=:state + * GET /projects/:id/merge_requests * * @param projectId the project ID to get the merge requests for * @param state the state parameter can be used to get only merge requests with a given state (opened, closed, or merged) or all of them (all). + * @param itemsPerPage the number of MergeRequest instances that will be fetched per page * @return all merge requests for the specified project * @throws GitLabApiException if any exception occurs */ - public List getMergeRequests(Integer projectId, MergeRequestState state) throws GitLabApiException { + public Pager getMergeRequests(Integer projectId, MergeRequestState state, int itemsPerPage) throws GitLabApiException { Form formData = new GitLabApiForm() - .withParam("state", state) - .withParam(PER_PAGE_PARAM, getDefaultPerPage()); - Response response = get(Response.Status.OK, formData.asMap(), "projects", projectId, "merge_requests"); - return (response.readEntity(new GenericType>() {})); + .withParam("state", state); + return (new Pager(this, MergeRequest.class, itemsPerPage, formData.asMap(), "projects", projectId, "merge_requests")); } /**