The Exalate team will be on holiday for the coming days - returning Jan 4
Enjoy & stay safe

Versions Compared

Key

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

...

Code Block
languagegroovy
themeEmacs
titleZendesk Incoming
collapsetrue
if (replica."tType" == "Account"){
    if (issue.customFields."Salesforce Account Number".value == null){
        def _rJson
        def res = new ZdClient(httpClient, debug)
            .http(
                    "POST",
                    "/api/v2/organizations",
                    [:],
                    "{\"organization\": {\"name\": \"${replica.Name}\"}}",
                    ["Accept": ["application/json"], "Content-type" : ["application/json"]]
            ) 
            { 
                response ->
                if (response.code >= 400) {
                    throw new com.exalate.api.exception.IssueTrackerException("Failed to get orgnaizations with name ")
                } 
                else {
                    def _r = response.body as String
                    def js = new groovy.json.JsonSlurper()
                    _rJson = _r == null ? null : js.parseText(_r)
                    _rJson
                    }
            }
        issue.customFields."Salesforce Account Number".value = _rJson.organization.id
        issue.summary      = replica.summary
        issue.description  = replica.description ?: "No description"
        store(issue)
        
        res = new ZdClient(httpClient, debug)
            .http(
                    "PUT",
                    "/api/v2/organizations/${issue.customFields.'Salesforce Account Number'.value}",
                    [:],
                    "{\"organization\": {\"organization_fields\": {\"org_phone\": \"${replica.Phone}\", \"test_copy\": \"${replica.Website}\"}}",
                    ["Accept": ["application/json"], "Content-type" : ["application/json"]]
            ) 
            { 
                response ->
                if (response.code >= 400) {
                    throw new com.exalate.api.exception.IssueTrackerException("Failed to get orgnaizations with name ")
                } 
                else {
                    def _r = response.body as String
                    def js = new groovy.json.JsonSlurper()
                    _rJson = _r == null ? null : js.parseText(_r)
                    _rJson
                    }
            }
    }
    else{
        def _rJson
        def res = new ZdClient(httpClient, debug)
            .http(
                    "PUT",
                    "/api/v2/organizations/${issue.customFields.'Salesforce Account Number'.value}",
                    [:],
                    "{\"organization\": {\"organization_fields\": {\"org_phone\": \"${replica.Phone}\", \"test_copy\": \"${replica.Website}\"}}",
                    ["Accept": ["application/json"], "Content-type" : ["application/json"]]
            ) 
            { 
                response ->
                if (response.code >= 400) {
                    throw new com.exalate.api.exception.IssueTrackerException("Failed to get orgnaizations with name ")
                } 
                else {
                    def _r = response.body as String
                    def js = new groovy.json.JsonSlurper()
                    _rJson = _r == null ? null : js.parseText(_r)
                    _rJson
                    }
            }        
    }
}
else if (replica.tType == "Contact"){
    if (issue.customFields."Salesforce Account Number".value == null){
        def _rJson
        def res = new ZdClient(httpClient, debug)
            .http(
                    "POST",
                    "/api/v2/users",
                    [:],
                    "{\"user\": {\"email\": \"${replica.Email}\", \"name\": \"${replica.Name}\", \"user_fields\": {\"test_copy\": \"${replica.MobilePhone}\"},\"organization\": {\"name\" : \"${replica.AccountName}\"}}}",
                    ["Accept": ["application/json"], "Content-type" : ["application/json"]]
            ) 
            { 
                response ->
                if (response.code >= 400) {
                    throw new com.exalate.api.exception.IssueTrackerException("Failed to get orgnaizations with name ")
                } 
                else {
                    def _r = response.body as String
                    def js = new groovy.json.JsonSlurper()
                    _rJson = _r == null ? null : js.parseText(_r)
                    _rJson
                    }
            }
        issue.summary      = replica.summary
        issue.description  = "No description"
        issue.customFields."Salesforce Account Number".value = _rJson.user.id
    }
    else{
        def _rJson
        def res = new ZdClient(httpClient, debug)
            .http(
                    "PUT",
                    "/api/v2/users/${issue.customFields.'Salesforce Account Number'.value}",
                    [:],
                    "{\"user\": {\"email\": \"${replica.Email}\", \"name\": \"${replica.Name}\", \"user_fields\": {\"test_copy\": \"${replica.MobilePhone}\"},\"organization\": {\"name\" : \"${replica.AccountName}\"}}}",
                    ["Accept": ["application/json"], "Content-type" : ["application/json"]]
            ) 
            { 
                response ->
                if (response.code >= 400) {
                    throw new com.exalate.api.exception.IssueTrackerException("Failed to get orgnaizations with name ")
                } 
                else {
                    def _r = response.body as String
                    def js = new groovy.json.JsonSlurper()
                    _rJson = _r == null ? null : js.parseText(_r)
                    _rJson
                    }
            }        
    }
}

...