< prev index next >

issuetracker/src/main/java/org/openjdk/skara/issuetracker/jira/JiraProject.java

Print this page

 99                                                                  .put("id", defaultIssueType()))
100                                            .put("components", JSON.array()
101                                                                   .add(JSON.object().put("id", defaultComponent())))
102                                            .put("summary", title)
103                                            .put("description", String.join("\n", body)));
104 
105         var data = request.post("issue")
106                           .body(query)
107                           .execute();
108 
109         return issue(data.get("key").asString()).orElseThrow();
110     }
111 
112     @Override
113     public Optional<Issue> issue(String id) {
114         if (id.indexOf('-') < 0) {
115             id = projectName.toUpperCase() + "-" + id;
116         }
117         var issueRequest = request.restrict("issue/" + id);
118         var issue = issueRequest.get("")
119                            .onError(r -> r.statusCode() == 404 ? JSON.object().put("NOT_FOUND", true) : null)
120                            .execute();



121         if (!issue.contains("NOT_FOUND")) {
122             return Optional.of(new JiraIssue(this, issueRequest, issue));
123         } else {
124             return Optional.empty();
125         }
126     }
127 
128     @Override
129     public List<Issue> issues() {
130         var ret = new ArrayList<Issue>();
131         var issues = request.post("search")
132                             .body("jql", "project = " + projectName + " AND status in (Open, New)")
133                             .execute();
134         for (var issue : issues.get("issues").asArray()) {
135             ret.add(new JiraIssue(this, request, issue));
136         }
137         return ret;
138     }
139 }

 99                                                                  .put("id", defaultIssueType()))
100                                            .put("components", JSON.array()
101                                                                   .add(JSON.object().put("id", defaultComponent())))
102                                            .put("summary", title)
103                                            .put("description", String.join("\n", body)));
104 
105         var data = request.post("issue")
106                           .body(query)
107                           .execute();
108 
109         return issue(data.get("key").asString()).orElseThrow();
110     }
111 
112     @Override
113     public Optional<Issue> issue(String id) {
114         if (id.indexOf('-') < 0) {
115             id = projectName.toUpperCase() + "-" + id;
116         }
117         var issueRequest = request.restrict("issue/" + id);
118         var issue = issueRequest.get("")
119                            .onError(r -> r.statusCode() < 500 ? JSON.object().put("NOT_FOUND", true) : null)
120                            .execute();
121         if (issue == null) {
122             throw new RuntimeException("Server error when trying to fetch issue " + id);
123         }
124         if (!issue.contains("NOT_FOUND")) {
125             return Optional.of(new JiraIssue(this, issueRequest, issue));
126         } else {
127             return Optional.empty();
128         }
129     }
130 
131     @Override
132     public List<Issue> issues() {
133         var ret = new ArrayList<Issue>();
134         var issues = request.post("search")
135                             .body("jql", "project = " + projectName + " AND status in (Open, New)")
136                             .execute();
137         for (var issue : issues.get("issues").asArray()) {
138             ret.add(new JiraIssue(this, request, issue));
139         }
140         return ret;
141     }
142 }
< prev index next >