def mapIssue()

in src/main/groovy/com/epam/esp/jira/JiraHelper.groovy [108:156]


    def mapIssue(issueId, boolean onlyTasks) {
        try {
            Issue jIssue = getIssueById(issueId)

            if (jIssue != null) {
                logger.info("\tIssue $issueId: EXISTS")
                def issue = new JiraIssue()
                issue.setKey(jIssue.key)
                issue.setType(jIssue.issueType.name)
                issue.setSummary(jIssue.summary)
                issue.setStatus(jIssue.status.name)

                jiraContext.customFields.each { String fieldKey ->
                    IssueField field = jIssue.getField(fieldKey);
                    if (field != null && field.value != null) {
                        issue.putCustomField(fieldKey, field)
                    }
                }

                //Parent issue
                def parent = jIssue.getField('parent')
                if (parent != null && parent.value != null) {
                    def parentId = parent.value.get('key')
                    logger.info("\tChecking parent: $parentId")
                    def mParent = mapIssue(parentId, onlyTasks)
                    issue.setParent(mParent)
                    if (onlyTasks) {
                        return mParent
                    }
                }

                //Epic
                if (jiraContext.epicLink != null) {
                    def epic = jIssue.getField(jiraContext.epicLink)
                    if (epic != null && epic.value != null) {
                        def mEpic = mapIssue(epic.value, onlyTasks)
                        issue.setParent(mEpic)
                    }
                }
                return issue
            } else {
                logger.info("\tIssue $issueId: NOT EXISTS")
                return null
            }
        } catch (RuntimeException e) {
            logger.error("Unable to find issue: '$issueId' ", e)
            return null
        }
    }