ResourceLabelEventsApi.java 13.19 KiB
package org.gitlab4j.api;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import javax.ws.rs.core.Response;
import org.gitlab4j.api.models.LabelEvent;
/**
 * This class provides an entry point to all the GitLab Resource label events API
 * @see <a href="https://docs.gitlab.com/ce/api/resource_label_events.html">Resource label events API at GitLab</a>
public class ResourceLabelEventsApi extends AbstractApi {
    public ResourceLabelEventsApi(GitLabApi gitLabApi) {
        super(gitLabApi);
    /**
     * Gets a list of all label events for a single issue.
     * <pre><code>GitLab Endpoint: GET /projects/:id/issues/:issue_iid/resource_label_events</code></pre>
     * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path
     * @param issueIid the IID of the issue
     * @return a List of LabelEvent for the specified issue
     * @throws GitLabApiException if any exception occurs
    public List<LabelEvent> getIssueLabelEvents(Object projectIdOrPath, Long issueIid) throws GitLabApiException {
        return (getIssueLabelEvents(projectIdOrPath, issueIid, getDefaultPerPage()).all());
    /**
     * Gets a Pager of all label events for a single issue.
     * <pre><code>GitLab Endpoint: GET /projects/:id/issues/:issue_iid/resource_label_events</code></pre>
     * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path
     * @param issueIid the IID of the issue
     * @param itemsPerPage the number of LabelEvent instances that will be fetched per page
     * @return the Pager of LabelEvent instances for the specified issue IID
     * @throws GitLabApiException if any exception occurs
    public Pager<LabelEvent> getIssueLabelEvents(Object projectIdOrPath, Long issueIid, int itemsPerPage) throws GitLabApiException {
        return (new Pager<LabelEvent>(this, LabelEvent.class, itemsPerPage, null,
                "projects", getProjectIdOrPath(projectIdOrPath), "issues", issueIid, "resource_label_events"));
    /**
     * Gets a Stream of all label events for a single issue.
     * <pre><code>GitLab Endpoint: GET /projects/:id/issues/:issue_iid/resource_label_events</code></pre>
     * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path
     * @param issueIid the IID of the issue
     * @return a Stream of LabelEvent for the specified issue
     * @throws GitLabApiException if any exception occurs
    public Stream<LabelEvent> getIssueLabelEventsStream(Object projectIdOrPath, Long issueIid) throws GitLabApiException {
        return (getIssueLabelEvents(projectIdOrPath, issueIid, getDefaultPerPage()).stream());
    /**
     * Get a single label event for a specific project issue.
     * <pre><code>GitLab Endpoint: GET /projects/:id/issues/:issue_iid/resource_label_events/:resource_label_event_id</code></pre>
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
* @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path * @param issueIid the IID of the issue * @param resourceLabelEventId the ID of a label event * @return LabelEvent instance for the specified project issue * @throws GitLabApiException if any exception occurs */ public LabelEvent getIssueLabelEvent(Object projectIdOrPath, Long issueIid, Long resourceLabelEventId) throws GitLabApiException { Response response = get(Response.Status.OK, null, "projects", getProjectIdOrPath(projectIdOrPath), "issues", issueIid, "resource_label_events", resourceLabelEventId); return (response.readEntity(LabelEvent.class)); } /** * Get an Optional instance holding a LabelEvent for a specific project issue * * <pre><code>GitLab Endpoint: GET /projects/:id/issues/:issue_iid/resource_label_events/:resource_label_event_id</code></pre> * * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path * @param issueIid the IID of the issue * @param resourceLabelEventId the ID of a label event * @return an Optional instance with the specified LabelEvent as the value * @throws GitLabApiException if any exception occurs */ public Optional<LabelEvent> getOptionalIssueLabelEvent(Object projectIdOrPath, Long issueIid, Long resourceLabelEventId) throws GitLabApiException { try { return (Optional.ofNullable(getIssueLabelEvent(projectIdOrPath, issueIid, resourceLabelEventId))); } catch (GitLabApiException glae) { return (GitLabApi.createOptionalFromException(glae)); } } /** * Gets a list of all label events for an epic. * * <pre><code>GitLab Endpoint: GET /projects/:id/epics/:epic_id/resource_label_events</code></pre> * * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path * @param epicId the ID of the epic * @return a List of LabelEvent for the specified epic * @throws GitLabApiException if any exception occurs */ public List<LabelEvent> getEpicLabelEvents(Object projectIdOrPath, Long epicId) throws GitLabApiException { return (getEpicLabelEvents(projectIdOrPath, epicId, getDefaultPerPage()).all()); } /** * Gets a Pager of all label events for the specified epic. * * <pre><code>GitLab Endpoint: GET /projects/:id/epics/:epic_id/resource_label_events</code></pre> * * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path * @param epicId the ID of the epic * @param itemsPerPage the number of LabelEvent instances that will be fetched per page * @return the Pager of LabelEvent instances for the specified epic * @throws GitLabApiException if any exception occurs */ public Pager<LabelEvent> getEpicLabelEvents(Object projectIdOrPath, Long epicId, int itemsPerPage) throws GitLabApiException { return (new Pager<LabelEvent>(this, LabelEvent.class, itemsPerPage, null, "projects", getProjectIdOrPath(projectIdOrPath), "epics", epicId, "resource_label_events")); } /** * Gets a Stream of all label events for he specified epic. * * <pre><code>GitLab Endpoint: GET /projects/:id/epics/:epic_id/resource_label_events</code></pre> * * @param projectIdOrPath id, path of the project, or a Project instance holding the project ID or path * @param epicId the ID of the epic