Documentation ¶
Index ¶
- type Attachement
- type Auth
- func (auth Auth) AddCommentToTicket(ticketID uint64, comment *Comment) (*Ticket, error)
- func (auth Auth) CreateTicket(ticket *NewTicket) (*Ticket, error)
- func (auth Auth) CreateUser(user NewUser) (User, error)
- func (auth Auth) ListOpenRequests(user User) ([]*Request, error)
- func (auth Auth) SearchUser(query string) ([]User, error)
- type Comment
- type ContactHandler
- type CustomField
- type CustomFields
- type Error
- type NewTicket
- type NewUser
- type Request
- type RequestsSearch
- type Strategy
- type Ticket
- type User
- type UserID
- type Users
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attachement ¶
type Attachement struct { ID uint64 `json:"id,omitempty"` Name string `json:"name"` ContentURL string `json:"content_url"` ContentType string `json:"content_type"` Size uint64 `json:"size"` Thumbnails []string `json:"thumbnails"` }
Attachement represents attachement in ticket
type Auth ¶
func (Auth) AddCommentToTicket ¶
AddCommentToTicket adds comment to existing ticket
func (Auth) CreateTicket ¶
CreateTicket creates new ticket
func (Auth) CreateUser ¶
CreateUser creates user
type Comment ¶
type Comment struct { ID uint64 `json:"id,omitempty"` Type string `json:"type,omitempty"` Body string `json:"body,omitempty"` Public bool `json:"public,omitempty"` CreatedAt *time.Time `json:"created_at,omitempty"` AuthorID UserID `json:"author_id,omitempty"` Attachements []Attachement `json:"attachements,omitempty"` Via *struct { Channel string `json:"channel,omitempty"` } `json:"via,omitempty"` }
Comment represents single message in ticket
type ContactHandler ¶
type ContactHandler struct { *Auth BeforeCreateTicket func(r *http.Request, ticket *NewTicket) *NewTicket Strategy Strategy }
ContactHandler is a helper for sending messages
func (ContactHandler) ServeHTTP ¶
func (z ContactHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type CustomField ¶
type CustomFields ¶
type CustomFields []CustomField
type Error ¶
type Error struct { Description string `json:"description"` Details struct { Value []struct { Type string Description string } `json:"value"` } }
Error represents zendesk api error
type NewTicket ¶
type NewTicket struct { Subject string `json:"subject,omitempty"` Comment Comment `json:"comment,omitempty"` RequesterID UserID `json:"requester_id,omitempty"` SubmitterID UserID `json:"submitter_id,omitempty"` AssigneeID UserID `json:"assignee_id,omitempty"` GroupID uint64 `json:"group_id,omitempty"` CollaboratorIDs []UserID `json:"collaborator_ids,omitempty"` Type string `json:"type,omitempty"` Priority string `json:"priority,omitempty"` Status string `json:"status,omitempty"` Tags []string `json:"tags,omitempty"` ExternalID *uint64 `json:"external_id,omitempty"` ForumTopicID *uint64 `json:"forum_topic_id,omitempty"` ProblemID *uint64 `json:"problem_id,omitempty"` DueAt *time.Time `json:"due_at,omitempty"` CustomFields CustomFields `json:"custom_fields,omitempty"` ViaFollowupSourceID *uint64 `json:"via_followup_source_id,omitempty"` }
NewTicket represents new tickets
type NewUser ¶
type NewUser struct { Email string `json:"email,omitempty"` Name string `json:"name,omitempty"` Roles string `json:"roles,omitempty"` ExternalID *uint64 `json:"external_id,omitempty"` Verified bool `json:"verified,omitempty"` }
NewUser represents new user
type Request ¶
type Request struct { ID uint64 `json:"id"` AssigneeID uint64 `json:"assignee_id"` CanBeSolvedByMe bool `json:"can_be_solved_by_me"` CreatedAt time.Time `json:"created_at,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty"` CustomFields CustomFields `json:"custom_fields,omitempty"` RequesterID int64 `json:"requester_id,omitempty"` Description string `json:"description,omitempty"` DueAt *time.Time `json:"due_at,omitempty"` OrganizationID int64 `json:"organization_id,omitempty"` Priority string `json:"priority,omitempty"` Status string `json:"status,omitempty"` Subject string `json:"subject,omitempty"` Type string `json:"type,omitempty"` URL string `json:"url"` Via struct { Channel string `json:"channel,omitempty"` } `json:"via"` CollaboratorIds []*uint64 `json:"collaborator_ids"` }
type RequestsSearch ¶
type Ticket ¶
type Ticket struct { ID uint64 `json:"id,omitempty"` URL string `json:"url,omitempty"` ExternalID string `json:"external_id,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` UpdatedAt time.Time `json:"updated_at,omitempty"` Type string `json:"type,omitempty"` Subject string `json:"subject,omitempty"` RawSubject string `json:"raw_subject,omitempty"` Description string `json:"description,omitempty"` Priority string `json:"priority,omitempty"` Status string `json:"status,omitempty"` Recipient string `json:"recipient,omitempty"` RequesterID int64 `json:"requester_id,omitempty"` SubmitterID int64 `json:"submitter_id,omitempty"` AssigneeID int64 `json:"assignee_id,omitempty"` OrganizationID int64 `json:"organization_id,omitempty"` GroupID int64 `json:"group_id,omitempty"` CollaboratorIds []int64 `json:"collaborator_ids,omitempty"` ForumTopicID int64 `json:"forum_topic_id,omitempty"` ProblemID int64 `json:"problem_id,omitempty"` HasIncidents bool `json:"has_incidents,omitempty"` DueAt *time.Time `json:"due_at,omitempty"` Tags []string `json:"tags,omitempty"` Via struct { Channel string `json:"channel,omitempty"` } `json:"via,omitempty"` CustomFields CustomFields `json:"custom_fields,omitempty"` SatisfactionRating struct { ID int `json:"id"` Score string `json:"score"` Comment string `json:"comment"` } `json:"satisfaction_rating,omitempty"` SharingAgreementIds []int64 `json:"sharing_agreement_ids,omitempty"` }
Ticket
type User ¶
type User struct { ID UserID `json:"id,omitempty"` URL string `json:"url,omitempty"` Name string `json:"name,omitempty"` ExternalID *uint64 `json:"external_id,omitempty"` Alias string `json:"alias,omitempty"` CreatedAt string `json:"created_at,omitempty"` UpdatedAt string `json:"updated_at,omitempty"` Active bool `json:"active,omitempty"` Verified bool `json:"verified,omitempty"` LastLoginAt string `json:"last_login_at,omitempty"` Email string `json:"email,omitempty"` Phone string `json:"phone,omitempty"` Details string `json:"details,omitempty"` Suspended bool `json:"suspended,omitempty"` }
Click to show internal directories.
Click to hide internal directories.