Hi i've some question.
Is it possible to set an Issue.value (e. g. assignee) with an Restendpoint and a webItem.
In my case the code is running but the set is not performed.
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.user.ApplicationUser
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonOutput
import groovy.transform.BaseScript
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
@BaseScript CustomEndpointDelegate delegate
approve(httpMethod: "GET") { MultivaluedMap queryParams ->
// the details of getting and modifying the current issue are ommitted for brevity
def issueId = queryParams.getFirst("issueId") as String // use the issueId to retrieve this issue
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject("${issueId}")
def test = issue.getAssigneeId()
issue.setAssigneeId("")
issue.setDescription("ABC")
def flag = [
type : 'success',
title: "Issue approved" + test.toString() ,
close: 'auto',
body : "This issue "+issueId+" has been approved for release"
]
Response.ok(JsonOutput.toJson(flag)).build()
}
Why is the set method not work? Or is this not possible in Restendpoint?
Is there a possibility to throw an event with an Restendpoint?
Thx and best regards
Torsten
Hello, It is possible. You should change your code to this one:
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.user.ApplicationUser
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
import groovy.json.JsonOutput
import groovy.transform.BaseScript
import com.atlassian.jira.event.type.EventDispatchOption
import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.core.Response
@BaseScript CustomEndpointDelegate delegate
approve(httpMethod: "GET") { MultivaluedMap queryParams ->
// the details of getting and modifying the current issue are ommitted for brevity
def issueId = queryParams.getFirst("issueId") as String // use the issueId to retrieve this issue
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject("${issueId}")
def test = issue.getAssigneeId()
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
issue.setAssignee(null)
issue.setDescription("ABC")
ComponentAccessor.getIssueManager().updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
def flag = [
type : 'success',
title: "Issue approved" + test.toString() ,
close: 'auto',
body : "This issue "+issueId+" has been approved for release"
]
Response.ok(JsonOutput.toJson(flag)).build()
}
Do you mean that you want to execute this rest call from somewhere in Jira and then after executing this call you want to refresh this Jira page?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes i make my rest call with a web-item in view screen. But after the unassign the page doesn't reload automaticly so the shown values not update before i perfom with F5
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Alexey. Thats really cool thx for the hint with
ComponentAccessor.getIssueManager().updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
Is it possible to refresh the site after the action?
regards
Torsten
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.