Skip to content

Add LinkedIssue for endpoint "/projects/:id/issues/:issue_iid/links" #968

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions src/main/java/org/gitlab4j/api/IssuesApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -834,7 +835,7 @@ public Stream<MergeRequest> 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<Issue> getIssueLinks(Object projectIdOrPath, Long issueIid) throws GitLabApiException {
public List<LinkedIssue> getIssueLinks(Object projectIdOrPath, Long issueIid) throws GitLabApiException {
return (getIssueLinks(projectIdOrPath, issueIid, getDefaultPerPage()).all());
}

Expand All @@ -852,8 +853,8 @@ public List<Issue> 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<Issue> getIssueLinks(Object projectIdOrPath, Long issueIid, int itemsPerPage) throws GitLabApiException {
return (new Pager<Issue>(this, Issue.class, itemsPerPage, null,
public Pager<LinkedIssue> getIssueLinks(Object projectIdOrPath, Long issueIid, int itemsPerPage) throws GitLabApiException {
return (new Pager<LinkedIssue>(this, LinkedIssue.class, itemsPerPage, null,
"projects", getProjectIdOrPath(projectIdOrPath), "issues", issueIid, "links"));
}

Expand All @@ -870,7 +871,7 @@ public Pager<Issue> 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<Issue> getIssueLinksStream(Object projectIdOrPath, Long issueIid) throws GitLabApiException {
public Stream<LinkedIssue> getIssueLinksStream(Object projectIdOrPath, Long issueIid) throws GitLabApiException {
return (getIssueLinks(projectIdOrPath, issueIid, getDefaultPerPage()).stream());
}

Expand Down
36 changes: 1 addition & 35 deletions src/main/java/org/gitlab4j/api/models/EpicIssue.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<String, String> 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<String, String> getLinks() {
return links;
}
Expand All @@ -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;
}
Expand Down
39 changes: 0 additions & 39 deletions src/main/java/org/gitlab4j/api/models/Issue.java
Original file line number Diff line number Diff line change
@@ -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;
}
Expand All @@ -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));
Expand Down
51 changes: 51 additions & 0 deletions src/main/java/org/gitlab4j/api/models/LinkedIssue.java
Original file line number Diff line number Diff line change
@@ -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));
}
}
3 changes: 2 additions & 1 deletion src/test/java/org/gitlab4j/api/TestGitLabApiBeans.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -370,7 +371,7 @@ public void testLabelEvents() throws Exception {

@Test
public void testLinkedIssues() throws Exception {
List<Issue> linkedIssues = unmarshalResourceList(Issue.class, "linked-issues.json");
List<LinkedIssue> linkedIssues = unmarshalResourceList(LinkedIssue.class, "linked-issues.json");
assertTrue(compareJson(linkedIssues, "linked-issues.json"));
}

Expand Down
1 change: 0 additions & 1 deletion src/test/resources/org/gitlab4j/api/epic-issue.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
1 change: 0 additions & 1 deletion src/test/resources/org/gitlab4j/api/linked-issues.json
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down