From afb31a5cd6a813dd18d149e39dce374ffd957637 Mon Sep 17 00:00:00 2001 From: Jeremie Bresson Date: Thu, 27 Apr 2023 13:42:01 +0200 Subject: [PATCH] Create LinkedIssue for endpoint "/projects/:id/issues/:issue_iid/links" --- src/main/java/org/gitlab4j/api/IssuesApi.java | 9 ++-- .../org/gitlab4j/api/models/EpicIssue.java | 36 +------------ .../java/org/gitlab4j/api/models/Issue.java | 39 -------------- .../org/gitlab4j/api/models/LinkedIssue.java | 51 +++++++++++++++++++ .../org/gitlab4j/api/TestGitLabApiBeans.java | 3 +- .../org/gitlab4j/api/epic-issue.json | 1 - .../org/gitlab4j/api/linked-issues.json | 1 - 7 files changed, 59 insertions(+), 81 deletions(-) create mode 100644 src/main/java/org/gitlab4j/api/models/LinkedIssue.java diff --git a/src/main/java/org/gitlab4j/api/IssuesApi.java b/src/main/java/org/gitlab4j/api/IssuesApi.java index e311a5b23..aa09f0ff8 100644 --- a/src/main/java/org/gitlab4j/api/IssuesApi.java +++ b/src/main/java/org/gitlab4j/api/IssuesApi.java @@ -17,6 +17,7 @@ import org.gitlab4j.api.models.IssuesStatistics; import org.gitlab4j.api.models.IssuesStatisticsFilter; import org.gitlab4j.api.models.LinkType; +import org.gitlab4j.api.models.LinkedIssue; import org.gitlab4j.api.models.MergeRequest; import org.gitlab4j.api.models.Participant; import org.gitlab4j.api.models.TimeStats; @@ -834,7 +835,7 @@ public Stream getClosedByMergeRequestsStream(Object projectIdOrPat * @return a list of related issues of a given issue, sorted by the relationship creation datetime (ascending) * @throws GitLabApiException if any exception occurs */ - public List getIssueLinks(Object projectIdOrPath, Long issueIid) throws GitLabApiException { + public List getIssueLinks(Object projectIdOrPath, Long issueIid) throws GitLabApiException { return (getIssueLinks(projectIdOrPath, issueIid, getDefaultPerPage()).all()); } @@ -852,8 +853,8 @@ public List getIssueLinks(Object projectIdOrPath, Long issueIid) throws G * @return a Pager of related issues of a given issue, sorted by the relationship creation datetime (ascending) * @throws GitLabApiException if any exception occurs */ - public Pager getIssueLinks(Object projectIdOrPath, Long issueIid, int itemsPerPage) throws GitLabApiException { - return (new Pager(this, Issue.class, itemsPerPage, null, + public Pager getIssueLinks(Object projectIdOrPath, Long issueIid, int itemsPerPage) throws GitLabApiException { + return (new Pager(this, LinkedIssue.class, itemsPerPage, null, "projects", getProjectIdOrPath(projectIdOrPath), "issues", issueIid, "links")); } @@ -870,7 +871,7 @@ public Pager getIssueLinks(Object projectIdOrPath, Long issueIid, int ite * @return a Stream of related issues of a given issue, sorted by the relationship creation datetime (ascending) * @throws GitLabApiException if any exception occurs */ - public Stream getIssueLinksStream(Object projectIdOrPath, Long issueIid) throws GitLabApiException { + public Stream getIssueLinksStream(Object projectIdOrPath, Long issueIid) throws GitLabApiException { return (getIssueLinks(projectIdOrPath, issueIid, getDefaultPerPage()).stream()); } diff --git a/src/main/java/org/gitlab4j/api/models/EpicIssue.java b/src/main/java/org/gitlab4j/api/models/EpicIssue.java index 8883b6f0b..7c59c8bba 100644 --- a/src/main/java/org/gitlab4j/api/models/EpicIssue.java +++ b/src/main/java/org/gitlab4j/api/models/EpicIssue.java @@ -8,38 +8,14 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -public class EpicIssue extends Issue { - - private Integer downvotes; - private Integer upvotes; +public class EpicIssue extends AbstractIssue { @JsonProperty("_links") private Map links; - private Boolean subscribed; private Long epicIssueId; private Integer relativePosition; - @Override - public Integer getDownvotes() { - return downvotes; - } - - @Override - public void setDownvotes(Integer downvotes) { - this.downvotes = downvotes; - } - - @Override - public Integer getUpvotes() { - return upvotes; - } - - @Override - public void setUpvotes(Integer upvotes) { - this.upvotes = upvotes; - } - public Map getLinks() { return links; } @@ -57,16 +33,6 @@ public String getLinkByName(String name) { return (links.get(name)); } - @Override - public Boolean getSubscribed() { - return subscribed; - } - - @Override - public void setSubscribed(Boolean subscribed) { - this.subscribed = subscribed; - } - public Long getEpicIssueId() { return epicIssueId; } diff --git a/src/main/java/org/gitlab4j/api/models/Issue.java b/src/main/java/org/gitlab4j/api/models/Issue.java index 5cd47f803..a6405d0e7 100644 --- a/src/main/java/org/gitlab4j/api/models/Issue.java +++ b/src/main/java/org/gitlab4j/api/models/Issue.java @@ -1,19 +1,12 @@ package org.gitlab4j.api.models; -import java.util.Date; - import org.gitlab4j.api.utils.JacksonJson; public class Issue extends AbstractIssue { private Boolean subscribed; - private Long issueLinkId; - private LinkType linkType; - private Date linkCreatedAt; - private Date linkUpdatedAt; - public Boolean getSubscribed() { return subscribed; } @@ -22,38 +15,6 @@ public void setSubscribed(Boolean subscribed) { this.subscribed = subscribed; } - public Long getIssueLinkId() { - return issueLinkId; - } - - public void setIssueLinkId(Long issueLinkId) { - this.issueLinkId = issueLinkId; - } - - public LinkType getLinkType() { - return linkType; - } - - public void setLinkType(LinkType linkType) { - this.linkType = linkType; - } - - public Date getLinkCreatedAt() { - return linkCreatedAt; - } - - public void setLinkCreatedAt(Date linkCreatedAt) { - this.linkCreatedAt = linkCreatedAt; - } - - public Date getLinkUpdatedAt() { - return linkUpdatedAt; - } - - public void setLinkUpdatedAt(Date linkUpdatedAt) { - this.linkUpdatedAt = linkUpdatedAt; - } - @Override public String toString() { return (JacksonJson.toJsonString(this)); diff --git a/src/main/java/org/gitlab4j/api/models/LinkedIssue.java b/src/main/java/org/gitlab4j/api/models/LinkedIssue.java new file mode 100644 index 000000000..00fefe9b2 --- /dev/null +++ b/src/main/java/org/gitlab4j/api/models/LinkedIssue.java @@ -0,0 +1,51 @@ + +package org.gitlab4j.api.models; + +import java.util.Date; + +import org.gitlab4j.api.utils.JacksonJson; + +public class LinkedIssue extends AbstractIssue { + + private Long issueLinkId; + private LinkType linkType; + private Date linkCreatedAt; + private Date linkUpdatedAt; + + public Long getIssueLinkId() { + return issueLinkId; + } + + public void setIssueLinkId(Long issueLinkId) { + this.issueLinkId = issueLinkId; + } + + public LinkType getLinkType() { + return linkType; + } + + public void setLinkType(LinkType linkType) { + this.linkType = linkType; + } + + public Date getLinkCreatedAt() { + return linkCreatedAt; + } + + public void setLinkCreatedAt(Date linkCreatedAt) { + this.linkCreatedAt = linkCreatedAt; + } + + public Date getLinkUpdatedAt() { + return linkUpdatedAt; + } + + public void setLinkUpdatedAt(Date linkUpdatedAt) { + this.linkUpdatedAt = linkUpdatedAt; + } + + @Override + public String toString() { + return (JacksonJson.toJsonString(this)); + } +} diff --git a/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java b/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java index 5afc24a75..08c607f11 100644 --- a/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java +++ b/src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java @@ -79,6 +79,7 @@ import org.gitlab4j.api.models.Label; import org.gitlab4j.api.models.LabelEvent; import org.gitlab4j.api.models.Link; +import org.gitlab4j.api.models.LinkedIssue; import org.gitlab4j.api.models.Member; import org.gitlab4j.api.models.MergeRequest; import org.gitlab4j.api.models.MergeRequestDiff; @@ -370,7 +371,7 @@ public void testLabelEvents() throws Exception { @Test public void testLinkedIssues() throws Exception { - List linkedIssues = unmarshalResourceList(Issue.class, "linked-issues.json"); + List linkedIssues = unmarshalResourceList(LinkedIssue.class, "linked-issues.json"); assertTrue(compareJson(linkedIssues, "linked-issues.json")); } diff --git a/src/test/resources/org/gitlab4j/api/epic-issue.json b/src/test/resources/org/gitlab4j/api/epic-issue.json index 10561292d..629f15c3c 100644 --- a/src/test/resources/org/gitlab4j/api/epic-issue.json +++ b/src/test/resources/org/gitlab4j/api/epic-issue.json @@ -59,7 +59,6 @@ "award_emoji": "http://localhost:3001/api/v4/projects/8/issues/6/award_emoji", "project": "http://localhost:3001/api/v4/projects/8" }, - "subscribed": true, "epic_issue_id": 2, "relative_position": 55 } \ No newline at end of file diff --git a/src/test/resources/org/gitlab4j/api/linked-issues.json b/src/test/resources/org/gitlab4j/api/linked-issues.json index daf4b172d..264e4855d 100644 --- a/src/test/resources/org/gitlab4j/api/linked-issues.json +++ b/src/test/resources/org/gitlab4j/api/linked-issues.json @@ -19,7 +19,6 @@ "username" : "eileen.lowe" }, "updated_at" : "2016-01-07T12:44:33.959Z", - "subscribed" : true, "user_notes_count": 0, "web_url": "http://example.com/example/example/issues/14", "confidential": false,