zendesk

package
v0.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 27, 2018 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ActionFieldStatus status
	ActionFieldStatus = iota
	// ActionFieldType type
	ActionFieldType
	// ActionFieldPriority priority
	ActionFieldPriority
	// ActionFieldGroupID group_id
	ActionFieldGroupID
	// ActionFieldAssigneeID assignee_id
	ActionFieldAssigneeID
	// ActionFieldSetTags set_tags
	ActionFieldSetTags
	// ActionFieldCurrentTags current_tags
	ActionFieldCurrentTags
	// ActionFieldRemoveTags remove_tags
	ActionFieldRemoveTags
	// ActionFieldSatisfactionScore satisfaction_score
	ActionFieldSatisfactionScore
	// ActionFieldNotificationUser notification_user
	ActionFieldNotificationUser
	// ActionFieldNotificationGroup notification_group
	ActionFieldNotificationGroup
	// ActionFieldNotificationTarget notification_target
	ActionFieldNotificationTarget
	// ActionFieldTweetRequester tweet_requester
	ActionFieldTweetRequester
	// ActionFieldCC cc
	ActionFieldCC
	// ActionFieldLocaleID locale_id
	ActionFieldLocaleID
	// ActionFieldSubject subject
	ActionFieldSubject
	// ActionFieldCommentValue comment_value
	ActionFieldCommentValue
	// ActionFieldCommentValueHTML comment_value_html
	ActionFieldCommentValueHTML
	// ActionFieldCommentModeIsPublic comment_mode_is_public
	ActionFieldCommentModeIsPublic
	// ActionFieldTicketFormID ticket_form_id
	ActionFieldTicketFormID
)

action field types which defined by system https://developer.zendesk.com/rest_api/docs/core/triggers#actions-reference

View Source
const (
	// ConditionFieldGroupID group_id
	ConditionFieldGroupID = iota
	// ConditionFieldAssigneeID assignee_id
	ConditionFieldAssigneeID
	// ConditionFieldRequesterID requester_id
	ConditionFieldRequesterID
	// ConditionFieldOrganizationID organization_id
	ConditionFieldOrganizationID
	// ConditionFieldCurrentTags current_tags
	ConditionFieldCurrentTags
	// ConditionFieldViaID via_id
	ConditionFieldViaID
	// ConditionFieldRecipient recipient
	ConditionFieldRecipient
	// ConditionFieldType type
	ConditionFieldType
	// ConditionFieldStatus status
	ConditionFieldStatus
	// ConditionFieldPriority priority
	ConditionFieldPriority
	// ConditionFieldDescriptionIncludesWord description_includes_word
	ConditionFieldDescriptionIncludesWord
	// ConditionFieldLocaleID locale_id
	ConditionFieldLocaleID
	// ConditionFieldSatisfactionScore satisfaction_score
	ConditionFieldSatisfactionScore
	// ConditionFieldSubjectIncludesWord subject_includes_word
	ConditionFieldSubjectIncludesWord
	// ConditionFieldCommentIncludesWord comment_includes_word
	ConditionFieldCommentIncludesWord
	// ConditionFieldCurrentViaID current_via_id
	ConditionFieldCurrentViaID
	// ConditionFieldUpdateType update_type
	ConditionFieldUpdateType
	// ConditionFieldCommentIsPublic comment_is_public
	ConditionFieldCommentIsPublic
	// ConditionFieldTicketIsPublic ticket_is_public
	ConditionFieldTicketIsPublic
	// ConditionFieldReopens reopens
	ConditionFieldReopens
	// ConditionFieldReplies
	ConditionFieldReplies
	// ConditionFieldAgentStations agent_stations
	ConditionFieldAgentStations
	// ConditionFieldGroupStations group_stations
	ConditionFieldGroupStations
	// ConditionFieldInBusinessHours in_business_hours
	ConditionFieldInBusinessHours
	// ConditionFieldRequesterTwitterFollowersCount requester_twitter_followers_count
	ConditionFieldRequesterTwitterFollowersCount
	// ConditionFieldRequesterTwitterStatusesCount requester_twitter_statuses_count
	ConditionFieldRequesterTwitterStatusesCount
	// ConditionFieldRequesterTwitterVerified requester_twitter_verified
	ConditionFieldRequesterTwitterVerified
	// ConditionFieldTicketTypeID ticket_type_id
	ConditionFieldTicketTypeID
	// ConditionFieldExactCreatedAt exact_created_at
	ConditionFieldExactCreatedAt
	// ConditionFieldNew NEW
	ConditionFieldNew
	// ConditionFieldOpen OPEN
	ConditionFieldOpen
	// ConditionFieldPending PENDING
	ConditionFieldPending
	// ConditionFieldSolved SOLVED
	ConditionFieldSolved
	// ConditionFieldClosed CLOSED
	ConditionFieldClosed
	// ConditionFieldAssignedAt assigned_at
	ConditionFieldAssignedAt
	// ConditionFieldUpdatedAt updated_at
	ConditionFieldUpdatedAt
	// ConditionFieldRequesterUpdatedAt requester_updated_at
	ConditionFieldRequesterUpdatedAt
	// ConditionFieldAssigneeUpdatedAt
	ConditionFieldAssigneeUpdatedAt
	// ConditionFieldDueDate due_date
	ConditionFieldDueDate
	// ConditionFieldUntilDueDate until_due_date
	ConditionFieldUntilDueDate
)

condition field types which are defined by system https://developer.zendesk.com/rest_api/docs/core/triggers#conditions-reference

View Source
const (
	// ViaWebForm : Web form
	ViaWebForm = 0
	// ViaMail : Email
	ViaMail = 4
	// ViaChat : Chat
	ViaChat = 29
	// ViaTwitter : Twitter
	ViaTwitter = 30
	// ViaTwitterDM : Twitter DM
	ViaTwitterDM = 26
	// TwitterFavorite : Twitter like
	ViaTwitterFavorite = 23
	// ViaVoicemail : Voicemail
	ViaVoicemail = 33
	// ViaPhoneCallInbound : Phone call (incoming)
	ViaPhoneCallInbound = 34
	// ViaPhoneCallOutbound : Phone call (outbound)
	ViaPhoneCallOutbound = 35
	// ViaAPIVoicemail : CTI voicemail
	ViaAPIVoicemail = 44
	// ViaAPIPhoneCallInbound : CTI phone call (inbound)
	ViaAPIPhoneCallInbound = 45
	// ViaAPIPhoneCallOutbound : CTI phone call (outbound)
	ViaAPIPhoneCallOutbound = 46
	// ViaSMS : SMS
	ViaSMS = 57
	// ViaGetSatisfaction : Get Satisfaction
	ViaGetSatisfaction = 16
	// ViaWebWidget : Web Widget
	ViaWebWidget = 48
	// ViaMobileSDK : Mobile SDK
	ViaMobileSDK = 49
	// ViaMobile : Mobile
	ViaMobile = 56
	// ViaHelpCenter : Help Center post
	ViaHelpCenter = 50
	// ViaWebService : Web service (API)
	ViaWebService = 5
	// ViaRule : Trigger, automation
	ViaRule = 8
	// ViaClosedTicket : Closed ticket
	ViaClosedTicket = 27
	// ViaTicketSharing : Ticket Sharing
	ViaTicketSharing = 31
	// ViaFacebookPost : Facebook post
	ViaFacebookPost = 38
	// ViaFacebookMessage : Facebook private message
	ViaFacebookMessage = 41
	// ViaSatisfactionPrediction : Satisfaction prediction
	ViaSatisfactionPrediction = 54
	// ViaAnyChannel : Channel framework
	ViaAnyChannel = 55
)

https://developer.zendesk.com/rest_api/docs/support/triggers#via-types

Variables

This section is empty.

Functions

func ActionFieldText

func ActionFieldText(fieldType int) string

ActionFieldText takes field type and returns field name string

func ConditionFieldText

func ConditionFieldText(fieldType int) string

ConditionFieldText takes field type and returns field name string

func ViaTypeText

func ViaTypeText(viaID int) string

ViaTypeText takes via_id and returns via_type

Types

type APITokenCredential

type APITokenCredential struct {
	// contains filtered or unexported fields
}

APITokenCredential is type of credential for API token authentication

func NewAPITokenCredential

func NewAPITokenCredential(email string, apiToken string) *APITokenCredential

NewAPITokenCredential creates APITokenCredential and returns its pointer

func (APITokenCredential) Email

func (c APITokenCredential) Email() string

Email is accessor which returns email address

func (APITokenCredential) Secret

func (c APITokenCredential) Secret() string

Secret is accessor which returns API token

type BasicAuthCredential

type BasicAuthCredential struct {
	// contains filtered or unexported fields
}

BasicAuthCredential is type of credential for Basic authentication

func NewBasicAuthCredential

func NewBasicAuthCredential(email string, password string) *BasicAuthCredential

NewBasicAuthCredential creates BasicAuthCredential and returns its pointer

func (BasicAuthCredential) Email

func (c BasicAuthCredential) Email() string

Email is accessor which returns email address

func (BasicAuthCredential) Secret

func (c BasicAuthCredential) Secret() string

Secret is accessor which returns password

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client of Zendesk API

func NewClient

func NewClient(httpClient *http.Client) (*Client, error)

NewClient creates new Zendesk API client

func (Client) CreateTicketField

func (z Client) CreateTicketField(ticketField TicketField) (TicketField, error)

CreateTicketField creates new ticket field ref: https://developer.zendesk.com/rest_api/docs/core/ticket_fields#create-ticket-field

func (Client) CreateTicketForm

func (z Client) CreateTicketForm(ticketForm TicketForm) (TicketForm, error)

CreateTicketForm creates new ticket form ref: https://developer.zendesk.com/rest_api/docs/core/ticket_forms#create-ticket-forms

func (Client) CreateTrigger

func (z Client) CreateTrigger(trigger Trigger) (Trigger, error)

CreateTrigger creates new trigger ref: https://developer.zendesk.com/rest_api/docs/core/triggers#create-trigger

func (Client) GetTicketFields

func (z Client) GetTicketFields() ([]TicketField, Page, error)

GetTicketFields fetches ticket field list ref: https://developer.zendesk.com/rest_api/docs/core/ticket_fields#list-ticket-fields

func (Client) GetTicketForms

func (z Client) GetTicketForms() ([]TicketForm, Page, error)

GetTicketForms fetches ticket forms

func (*Client) GetTriggers

func (z *Client) GetTriggers() ([]Trigger, Page, error)

GetTriggers fetch trigger list

func (Client) NewGetRequest

func (z Client) NewGetRequest(path string) (*http.Request, error)

NewGetRequest create GET *http.Request with headers which are required for authentication.

func (Client) NewPostRequest

func (z Client) NewPostRequest(path string, payload interface{}) (*http.Request, error)

NewPostRequest create POST *http.Request with headers which are required for authentication.

func (*Client) SetCredential

func (z *Client) SetCredential(cred Credential)

SetCredential saves credential in client. It will be set to request header when call API

func (*Client) SetEndpointURL

func (z *Client) SetEndpointURL(newURL string) error

SetEndpointURL replace full URL of endpoint without subdomain validation. This is mainly used for testing to point to mock API server.

func (*Client) SetHeader

func (z *Client) SetHeader(key string, value string)

SetHeader saves HTTP header in client. It will be included all API request

func (*Client) SetSubdomain

func (z *Client) SetSubdomain(subdomain string) error

SetSubdomain saves subdomain in client. It will be used when call API

type Credential

type Credential interface {
	Email() string
	Secret() string
}

Credential is interface of API credential

type GetTicketFormsResponse

type GetTicketFormsResponse struct {
	TicketForms []TicketForm `json:"ticket_forms"`
	Page        Page
}

GetTicketFormsResponse is response structure

type GetTriggersResponse

type GetTriggersResponse struct {
	Triggers []Trigger `json:"triggers"`
	Page     Page
}

GetTriggersResponse is response structure of triggers list

type Page

type Page struct {
	PreviousPage *string `json:"previous_page"`
	NextPage     *string `json:"next_page"`
	Count        int64   `json:"count"`
}

Page is base struct for resource pagination

func (Page) HasNext

func (p Page) HasNext() bool

HasNext checks if the Page has next page

func (Page) HasPrev

func (p Page) HasPrev() bool

HasPrev checks if the Page has previous page

type TicketField

type TicketField struct {
	ID                  int64                          `json:"id,omitempty"`
	URL                 string                         `json:"url,omitempty"`
	Type                string                         `json:"type"`
	Title               string                         `json:"title"`
	RawTitle            string                         `json:"raw_title,omitempty"`
	Description         string                         `json:"description,omitempty"`
	RawDescription      string                         `json:"raw_description,omitempty"`
	Position            int64                          `json:"position,omitempty"`
	Active              bool                           `json:"active,omitempty"`
	Required            bool                           `json:"required,omitempty"`
	CollapsedForAgents  bool                           `json:"collapsed_for_agents,omitempty"`
	RegexpForValidation string                         `json:"regexp_for_validation,omitempty"`
	TitleInPortal       string                         `json:"title_in_portal,omitempty"`
	RawTitleInPortal    string                         `json:"raw_title_in_portal,omitempty"`
	VisibleInPortal     bool                           `json:"visible_in_portal,omitempty"`
	EditableInPortal    bool                           `json:"editable_in_portal,omitempty"`
	Tag                 string                         `json:"tag,omitempty"`
	CreatedAt           *time.Time                     `json:"created_at,omitempty"`
	UpdatedAt           *time.Time                     `json:"updated_at,omitempty"`
	SystemFieldOptions  []TicketFieldSystemFieldOption `json:"system_field_options,omitempty"`
	CustomFieldOptions  []TicketFieldCustomFieldOption `json:"custom_field_options,omitempty"`
	SubTypeID           int64                          `json:"sub_type_id,omitempty"`
	Removable           bool                           `json:"removable,omitempty"`
	AgentDescription    string                         `json:"agent_description,omitempty"`
}

TicketField is struct for ticket_field payload

type TicketFieldCustomFieldOption

type TicketFieldCustomFieldOption struct {
	ID       int64  `json:"id,omitempty"`
	Name     string `json:"name"`
	Position int64  `json:"position,omitempty"`
	RawName  string `json:"raw_name,omitempty"`
	URL      string `json:"url,omitempty"`
	Value    string `json:"value"`
}

TicketFieldCustomFieldOption is struct for value of `custom_field_options`

type TicketFieldSystemFieldOption

type TicketFieldSystemFieldOption struct {
	ID       int64  `json:"id"`
	Name     string `json:"name"`
	Position int64  `json:"position"`
	RawName  string `json:"raw_name"`
	URL      string `json:"url"`
	Value    string `json:"value"`
}

TicketFieldSystemFieldOption is struct for value of `system_field_options`

type TicketForm

type TicketForm struct {
	ID                 int64   `json:"id,omitempty"`
	Name               string  `json:"name"`
	RawName            string  `json:"raw_name,omitempty"`
	DisplayName        string  `json:"display_name,omitempty"`
	RawDisplayName     string  `json:"raw_display_name,omitempty"`
	Position           int64   `json:"position"`
	Active             bool    `json:"active,omitempty"`
	EndUserVisible     bool    `json:"end_user_visible,omitempty"`
	Default            bool    `json:"default,omitempty"`
	TicketFieldIDs     []int64 `json:"ticket_field_ids,omitempty"`
	InAllBrands        bool    `json:"in_all_brands,omitempty"`
	RestrictedBrandIDs []int64 `json:"restricted_brand_ids,omitempty"`
}

TicketForm is JSON payload struct

type Trigger

type Trigger struct {
	ID         int64  `json:"id,omitempty"`
	Title      string `json:"title"`
	Active     bool   `json:"active,omitempty"`
	Position   int64  `json:"position,omitempty"`
	Conditions struct {
		All []TriggerCondition `json:"all"`
		Any []TriggerCondition `json:"any"`
	} `json:"conditions"`
	Actions     []TriggerAction `json:"actions"`
	Description string          `json:"description,omitempty"`
	CreatedAt   *time.Time      `json:"created_at,omitempty"`
	UpdatedAt   *time.Time      `json:"updated_at,omitempty"`
}

Trigger is zendesk trigger JSON payload format ref: https://developer.zendesk.com/rest_api/docs/core/triggers#json-format

type TriggerAction

type TriggerAction struct {
	Field string      `json:"field"`
	Value interface{} `json:"value"`
}

TriggerAction is zendesk trigger action ref: https://developer.zendesk.com/rest_api/docs/core/triggers#actions

type TriggerCondition

type TriggerCondition struct {
	Field    string `json:"field"`
	Operator string `json:"operator"`
	Value    string `json:"value"`
}

TriggerCondition zendesk trigger condition ref: https://developer.zendesk.com/rest_api/docs/core/triggers#conditions-reference

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL