Advertisement
Guest User

Untitled

a guest
Dec 26th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 2.33 KB | None | 0 0
  1. package ru.toolstrek.script_endpoints
  2.  
  3. import com.atlassian.jira.bc.issue.IssueService
  4. import com.atlassian.jira.component.ComponentAccessor
  5. import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate
  6. import groovy.json.JsonException
  7. import groovy.transform.BaseScript
  8. import groovy.json.JsonSlurper
  9.  
  10. import javax.ws.rs.core.MultivaluedMap
  11. import javax.ws.rs.core.Response
  12.  
  13. import org.apache.log4j.Level
  14. import org.apache.log4j.Logger
  15.  
  16. def log = Logger.getLogger("ru.toolstrek.script_endpoints.inline.opsgenie")
  17. log.setLevel(Level.DEBUG)
  18.  
  19. def slurper = new JsonSlurper()
  20. def issueService = ComponentAccessor.getComponentOfType(IssueService.class)
  21. def cfField = ComponentAccessor.customFieldManager.getCustomFieldObjectsByName("Test Field").first()
  22.  
  23. def PROJECT_ID = 12345L
  24. def ISSUE_TYPE_ID = "10100"
  25.  
  26. @BaseScript CustomEndpointDelegate delegate
  27.  
  28. opsgenie(httpMethod: "POST", groups: ["jira-administrators"]) { MultivaluedMap queryParams, String body ->
  29.     // Parse data
  30.     def data
  31.     try {
  32.         data = slurper.parseText(body)
  33.     } catch(JsonException ex) {
  34.         log.error("Error parsing data from OpsGenie: ${ex}")
  35.         return Response.serverError().build()
  36.     }
  37.  
  38.     def priorityId = "3"
  39.     def reporterKey = "admin"
  40.     def reporter = ComponentAccessor.userManager.getUserByKey(reporterKey)
  41.     def summary = "test summary"
  42.     def cfValue = "test value"
  43.  
  44.     // Create new issue
  45.     def taskIssueParameters = issueService.newIssueInputParameters()
  46.     taskIssueParameters.setProjectId(PROJECT_ID)
  47.     .setPriorityId(priorityId)
  48.     .setReporterId(reporterKey)
  49.     .setIssueTypeId(ISSUE_TYPE_ID)
  50.     .setSummary(summary)
  51.     .addCustomFieldValue(cfField.id, cfValue)
  52.  
  53.     def createTaskValidationResult = issueService.validateCreate(reporter, taskIssueParameters)
  54.     if (createTaskValidationResult.isValid()) {
  55.         def createTaskResult = issueService.create(reporter, createTaskValidationResult)
  56.         if (!createTaskResult.isValid()) {
  57.             log.error("Error creating issue from OpsGenie data: ${data}")
  58.             return Response.serverError().build()
  59.         }
  60.     } else {
  61.         log.error("Error validating data from OpsGenie: ${createTaskValidationResult.errorCollection}")
  62.         return Response.serverError().build()
  63.     }
  64.     return Response.ok().build()
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement