diff --git a/test_builds/wtf b/test_builds/wtf index fa5e18990..2332a30c0 100755 Binary files a/test_builds/wtf and b/test_builds/wtf differ diff --git a/zendesk/tickets.go b/zendesk/tickets.go index 3cf3c2f7e..26fff92d8 100644 --- a/zendesk/tickets.go +++ b/zendesk/tickets.go @@ -2,7 +2,7 @@ package zendesk import ( "encoding/json" - "fmt" + //"fmt" "log" ) @@ -73,32 +73,17 @@ func listTickets(pag ...string) (*TicketArray, error) { } -func newTickets() ([]string, error) { - var newTickets []string +func newTickets() ([]Ticket, error) { + newTickets := []Ticket{} tickets, err := listTickets() if err != nil { log.Fatal(err) } - for i := range tickets.Tickets { - if tickets.Tickets[i].Status == "new" { - requester := tickets.Tickets[i].Via - req, _ := requester.(map[string]interface{}) - source := req["source"] - fromMap, _ := source.(map[string]interface{}) - from := fromMap["from"] - fromValue, _ := from.(map[string]interface{}) - name := fromValue["name"] - - newTicket := fmt.Sprintf("%v - %v - %v - %v", tickets.Tickets[i].Id, tickets.Tickets[i].Status, tickets.Tickets[i].Subject, name) - newTickets = append(newTickets, newTicket) - } - } - if len(newTickets) < 1 { - fmt.Println("No unassigned tickets in queue - woop!!") - } else { - for i := range newTickets { - fmt.Println(newTickets[i]) + for _, Ticket := range tickets.Tickets { + if Ticket.Status == "new" { + newTickets = append(newTickets, Ticket) } } + return newTickets, nil } diff --git a/zendesk/widget.go b/zendesk/widget.go index 68cdbff23..395b83264 100644 --- a/zendesk/widget.go +++ b/zendesk/widget.go @@ -34,15 +34,35 @@ func (widget *Widget) Refresh() { /* -------------------- Unexported Functions -------------------- */ -func (widget *Widget) textContent(items []string) string { +func (widget *Widget) textContent(items []Ticket) string { if len(items) == 0 { return fmt.Sprintf("No unassigned tickets in queue - woop!!") } str := "" - for i := range items { - str = items[i] + for _, data := range items { + //str = items[i] + //str = fmt.Sprintf(data.Id) + str = str + widget.format(data) } return str } + +func (widget *Widget) format(ticket Ticket) string { + var str string + requesterName := widget.parseRequester(ticket) + str = fmt.Sprintf(" [green]%d - %s\n %s\n\n", ticket.Id, requesterName, ticket.Subject) + return str +} + +func (widget *Widget) parseRequester(ticket Ticket) interface{} { + viaMap := ticket.Via + via := viaMap.(map[string]interface{}) + source := via["source"] + fromMap, _ := source.(map[string]interface{}) + from := fromMap["from"] + fromValMap := from.(map[string]interface{}) + fromName := fromValMap["name"] + return fromName +}