Get customer requests
GET /rest/servicedeskapi/request
This method returns all customer requests for the user executing the query.
Copy package main
import (
"context"
"encoding/json"
"github.com/ctreminiom/go-atlassian/jira/sm"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
options := & models . ServiceRequestOptionScheme {
SearchTerm: "" ,
RequestOwnerships: [] string { "OWNED_REQUESTS" },
RequestStatus: "ALL_REQUESTS" ,
ApprovalStatus: "" ,
OrganizationID: 0 ,
ServiceDeskID: 0 ,
RequestTypeID: 0 ,
Expand: [] string { "serviceDesk" , "requestType" , "status" , "action" },
}
customerRequests, response, err := atlassian.Request. Gets (context. Background (), options, 0 , 50 )
if err != nil {
if response != nil {
log. Println ( "Response HTTP Response" , response.Bytes. String ())
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
for _, customRequest := range customerRequests.Values {
dataAsJson, err := json. MarshalIndent (customRequest, "" , "\t" )
if err != nil {
log. Fatal (err)
}
log. Println ( string (dataAsJson))
}
}
Get customer request by id or key
GET /rest/servicedeskapi/request/{issueIdOrKey}
This method returns a customer request.
Copy package main
import (
"context"
"encoding/json"
"github.com/ctreminiom/go-atlassian/jira/sm"
"log"
"os"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
var (
issueKey = "DESK-11"
expand = [] string { "serviceDesk" , "requestType" }
)
request, response, err := atlassian.Request. Get (context. Background (), issueKey, expand)
if err != nil {
if response != nil {
log. Println ( "Response HTTP Response" , response.Bytes. String ())
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
dataAsJson, err := json. MarshalIndent (request, "" , "\t" )
if err != nil {
log. Fatal (err)
}
log. Println ( string (dataAsJson))
}
Subscribe
PUT /rest/servicedeskapi/request/{issueIdOrKey}/notification
This method subscribes the user to receiving notifications from a customer request.
Copy package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/sm"
"log"
"os"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
response, err := atlassian.Request. Subscribe (context. Background (), "DUMMY-4" )
if err != nil {
if response != nil {
log. Println ( "Response HTTP Response" , response.Bytes. String ())
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
Unsubscribe
DELETE /rest/servicedeskapi/request/{issueIdOrKey}/notification
This method unsubscribes the user from notifications from a customer request.
Copy package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/sm"
"log"
"os"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
response, err := atlassian.Request. Unsubscribe (context. Background (), "DUMMY-4" )
if err != nil {
if response != nil {
log. Println ( "Response HTTP Response" , string (response.Bytes. String ()))
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
Get customer transitions
GET /rest/servicedeskapi/request/{issueIdOrKey}/transition
This method returns a list of transitions, the workflow processes that moves a customer request from one status to another, that the user can perform on a request.
Use this method to provide a user with a list if the actions they can take on a customer request.
Copy package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/sm"
"log"
"os"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
var (
issueKeyOrID = "DESK-3"
start = 0
limit = 50
)
transitions, response, err := atlassian.Request. Transitions (context. Background (), issueKeyOrID, start, limit)
if err != nil {
if response != nil {
log. Println ( "Response HTTP Response" , response.Bytes. String ())
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
for _, transition := range transitions.Values {
log. Println (transition.ID, transition.Name)
}
}
Perform customer transition
POST /rest/servicedeskapi/request/{issueIdOrKey}/transition
This method performs a customer transition for a given request and transition. An optional comment can be included to provide a reason for the transition.
Copy package main
import (
"context"
"github.com/ctreminiom/go-atlassian/jira/sm"
"log"
"os"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
var (
issueKeyOrID = "DESK-3"
transitionID = "921"
comment = "lorem"
)
response, err := atlassian.Request. Transition (context. Background (), issueKeyOrID, transitionID, comment)
if err != nil {
if response != nil {
log. Println ( "Response HTTP Response" , response.Bytes. String ())
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
}
Create Customer Request
POST /rest/servicedeskapi/request
This method creates a customer request at a service desk.
The payload must include the service desk and customer request type, as well as any fields that are required for the request type.
A list of the fields required by a customer request type can be obtained using the sm.RequestType.Fields
method.
Copy package main
import (
"context"
"fmt"
"github.com/ctreminiom/go-atlassian/jira/sm"
"github.com/ctreminiom/go-atlassian/pkg/infra/models"
"log"
"os"
"time"
)
func main () {
var (
host = os. Getenv ( "HOST" )
mail = os. Getenv ( "MAIL" )
token = os. Getenv ( "TOKEN" )
)
atlassian, err := sm. New ( nil , host)
if err != nil {
return
}
atlassian.Auth. SetBasicAuth (mail, token)
atlassian.Auth. SetUserAgent ( "curl/7.54.0" )
form := & models . CustomerRequestFields {Fields: make ( map [ string ] interface {})}
if err := form. Text ( "summary" , "Summary Sample" ); err != nil {
log. Fatal (err)
}
if err := form. Date ( "duedate" , time. Now ()); err != nil {
log. Fatal (err)
}
if err := form. Components ([] string { "Intranet" }); err != nil {
log. Fatal (err)
}
if err := form. Labels ([] string { "label-00" , "label-01" }); err != nil {
log. Fatal (err)
}
payload := & models . CreateCustomerRequestPayloadScheme {
RequestParticipants: nil ,
ServiceDeskID: "1" ,
RequestTypeID: "10" ,
}
ticket, response, err := atlassian.Request. Create (context. Background (), payload, form)
if err != nil {
log. Fatal (err)
}
log. Println ( "Response HTTP Code" , response.Code)
log. Println ( "HTTP Endpoint Used" , response.Endpoint)
fmt. Println ( "IssueID" , ticket.IssueID)
fmt. Println ( "IssueKey" , ticket.IssueKey)
fmt. Println ( "Reporter.EmailAddress" , ticket.Reporter.EmailAddress)
fmt. Println ( "CreatedDate.Friendly" , ticket.CreatedDate.Friendly)
for _, field := range ticket.RequestFieldValues {
fmt. Println (field)
}
}