public String detectWorkflow()

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());
    }