in gepard-rest/src/main/java/com/epam/gepard/rest/jira/JiraSiteHandler.java [302:334]
public String detectWorkflow(final String ticket) throws IOException, JSONException {
String jqlURL;
//first detect status
String ticketFields = getTicketFields(ticket);
JSONObject fieldObj = new JSONObject(ticketFields);
fieldObj = fieldObj.getJSONObject("fields");
fieldObj = fieldObj.getJSONObject("status");
String status = "@" + fieldObj.get("name").toString();
//then collect possible transactions
jqlURL = getIssueTransitionsUrl(ticket);
WebRequest requestSettings = new WebRequest(new URL(jqlURL), HttpMethod.GET);
requestSettings.setAdditionalHeader("Content-type", "application/json");
UnexpectedPage infoPage = webClient.getPage(requestSettings);
if (infoPage.getWebResponse().getStatusCode() == HTTP_RESPONSE_OK) {
String ticketList = infoPage.getWebResponse().getContentAsString();
JSONObject obj = new JSONObject(ticketList);
JSONArray array = obj.getJSONArray("transitions");
List<String> toList = new ArrayList<>();
toList.add(status);
for (int i = 0; i < array.length(); i++) {
JSONObject o = (JSONObject) array.get(i);
JSONObject o2 = o.getJSONObject("to");
String toPossibility = o2.get("name").toString();
String toPossibilityID = o.get("id").toString(); //it is the transition id not the status id
toList.add(toPossibilityID + ";" + toPossibility);
}
return toList.toString();
}
throw new SimpleGepardException("ERROR: Cannot fetch Issue transition possibilities from JIRA, for ticket: "
+ ticket + ", Status code:" + infoPage.getWebResponse().getStatusCode());
}