Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
var subHash = 'none';

if (subject.startsWith("Recall:"))
{
    //create regexp pattern to extract the subject of the email after Recall: word
    var pattern = Java.type("java.util.regex.Pattern").compile("Recall:\s?(.+)");
    var matcher = pattern.matcher(subject);
    
    //if able to extract the subject, set variable and set the custom field
    if (matcher.find())
    {
        var subWithoutRecall = matcher.group(1).trim();
        subHash = jemhUtils.hash(subWithoutRecall);
        resultMap.put("summary_hash", subHash);
    }
}
else if (subject !== null && !subject.isEmpty())
{
    subHash = jemhUtils.hash(subject);
}

//get the user to run the JQL query as
var user = userManager.getUserByName("admin");

var filter = Java.type("com.atlassian.jira.web.bean.PagerFilter").getUnlimitedFilter();
var builder = Java.type("com.atlassian.jira.jql.builder.JqlQueryBuilder").newBuilder();

//construct the JQL query
var query = builder.where().field("summary_hash").like(subHash).buildQuery();

//get list of issues (could be empty)
var results = searchService.search(user, query, filter).getResults();

//get first issue if exists and delete it 
if (results.size()>0) {
    var issue = results[0];
    var issueKey = issue.getKey();
    var issueToDelet = issueManager.getIssueObject(issueKey);
    issueManager.deleteIssueNoEvent(issueToDelet);
    jemhUtils.dropMessage("Issue is recalled");
}else{
    resultMap.put("summary_hash",subHash);
}