mirror of
https://github.com/interviewstreet/go-jira.git
synced 2024-11-28 08:39:03 +02:00
146229d2ab
Atlassian names the product "Jira". In this library, the product name is used different (JIRA) and inconsistent (sometimes JIRA, sometimes Jira). closes issue #284
51 lines
1.8 KiB
Go
51 lines
1.8 KiB
Go
package jira
|
|
|
|
import "context"
|
|
|
|
// FieldService handles fields for the Jira instance / API.
|
|
//
|
|
// Jira API docs: https://developer.atlassian.com/cloud/jira/platform/rest/#api-Field
|
|
type FieldService struct {
|
|
client *Client
|
|
}
|
|
|
|
// Field represents a field of a Jira issue.
|
|
type Field struct {
|
|
ID string `json:"id,omitempty" structs:"id,omitempty"`
|
|
Key string `json:"key,omitempty" structs:"key,omitempty"`
|
|
Name string `json:"name,omitempty" structs:"name,omitempty"`
|
|
Custom bool `json:"custom,omitempty" structs:"custom,omitempty"`
|
|
Navigable bool `json:"navigable,omitempty" structs:"navigable,omitempty"`
|
|
Searchable bool `json:"searchable,omitempty" structs:"searchable,omitempty"`
|
|
ClauseNames []string `json:"clauseNames,omitempty" structs:"clauseNames,omitempty"`
|
|
Schema FieldSchema `json:"schema,omitempty" structs:"schema,omitempty"`
|
|
}
|
|
|
|
type FieldSchema struct {
|
|
Type string `json:"type,omitempty" structs:"type,omitempty"`
|
|
System string `json:"system,omitempty" structs:"system,omitempty"`
|
|
}
|
|
|
|
// GetListWithContext gets all fields from Jira
|
|
//
|
|
// Jira API docs: https://developer.atlassian.com/cloud/jira/platform/rest/#api-api-2-field-get
|
|
func (s *FieldService) GetListWithContext(ctx context.Context) ([]Field, *Response, error) {
|
|
apiEndpoint := "rest/api/2/field"
|
|
req, err := s.client.NewRequestWithContext(ctx, "GET", apiEndpoint, nil)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
|
|
fieldList := []Field{}
|
|
resp, err := s.client.Do(req, &fieldList)
|
|
if err != nil {
|
|
return nil, resp, NewJiraError(resp, err)
|
|
}
|
|
return fieldList, resp, nil
|
|
}
|
|
|
|
// GetList wraps GetListWithContext using the background context.
|
|
func (s *FieldService) GetList() ([]Field, *Response, error) {
|
|
return s.GetListWithContext(context.Background())
|
|
}
|