1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/modules/zendesk/tickets.go
Chris Cummer cde904ff08
Use errcheck to find unhandled errors (#795)
Signed-off-by: Chris Cummer <chriscummer@me.com>
2019-12-17 08:26:16 -08:00

87 lines
2.7 KiB
Go

package zendesk
import (
"encoding/json"
"log"
)
type TicketArray struct {
Count int `json:"count"`
Created string `json:"created"`
Next_page string `json:"next_page"`
Previous_page string `json:"previous_page"`
Tickets []Ticket
}
type Ticket struct {
Id uint64 `json:"id"`
URL string `json:"url"`
ExternalId string `json:"external_id"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
Type string `json:"type"`
Subject string `json:"subject"`
RawSubject string `json:"raw_subject"`
Description string `json:"description"`
Priority string `json:"priority"`
Status string `json:"status"`
Recipient string `json:"recipient"`
RequesterId uint32 `json:"requester_id"`
SubmitterId uint32 `json:"submitter_id"`
AssigneeId uint32 `json:"assignee_id"`
OrganizationId uint32 `json:"organization_id"`
GroupId uint32 `json:"group_id"`
CollaboratorIds []int32 `json:"collaborator_ids"`
ForumTopicId uint32 `json:"forum_topic_id"`
ProblemId uint32 `json:"problem_id"`
HasIncidents bool `json:"has_incidents"`
DueAt string `json:"due_at"`
Tags []string `json:"tags"`
Satisfaction_rating string `json:"satisfaction_rating"`
Ticket_form_id uint32 `json:"ticket_form_id"`
Sharing_agreement_ids interface{} `json:"sharing_agreement_ids"`
Via interface{} `json:"via"`
Custom_Fields interface{} `json:"custom_fields"`
Fields interface{} `json:"fields"`
}
func (widget *Widget) listTickets(pag ...string) (*TicketArray, error) {
TicketStruct := &TicketArray{}
var path string
if len(pag) < 1 {
path = "/tickets.json"
} else {
path = pag[0]
}
resource, err := widget.api("GET", path, "")
if err != nil {
return nil, err
}
err = json.Unmarshal([]byte(resource.Raw), TicketStruct)
if err != nil {
return nil, err
}
return TicketStruct, err
}
func (widget *Widget) newTickets() (*TicketArray, error) {
newTicketArray := &TicketArray{}
tickets, err := widget.listTickets(widget.settings.apiKey)
if err != nil {
log.Fatal(err)
}
for _, Ticket := range tickets.Tickets {
if Ticket.Status == widget.settings.status && Ticket.Status != "closed" && Ticket.Status != "solved" {
newTicketArray.Tickets = append(newTicketArray.Tickets, Ticket)
}
}
return newTicketArray, nil
}